difftreelog
refactor drop CharArray
in: master
5 files changed
crates/jrsonnet-evaluator/src/arr/mod.rsdiffbeforeafterboth--- a/crates/jrsonnet-evaluator/src/arr/mod.rs
+++ b/crates/jrsonnet-evaluator/src/arr/mod.rs
@@ -45,10 +45,6 @@
Some(Self::new(RepeatedArray::new(data, repeats)?))
}
- pub fn chars(chars: impl Iterator<Item = char>) -> Self {
- Self::new(CharArray(chars.collect()))
- }
-
#[must_use]
pub fn map(self, mapper: NativeFn!((Val) -> Val)) -> Self {
Self::new(<MappedArray>::new(self, ArrayMapper::Plain(mapper)))
crates/jrsonnet-evaluator/src/arr/spec.rsdiffbeforeafterboth--- a/crates/jrsonnet-evaluator/src/arr/spec.rs
+++ b/crates/jrsonnet-evaluator/src/arr/spec.rs
@@ -97,17 +97,6 @@
}
}
-#[derive(Trace, Debug)]
-pub struct CharArray(pub Vec<char>);
-impl ArrayCheap for CharArray {
- fn len(&self) -> usize {
- self.0.as_slice().len()
- }
- fn get(&self, index: usize) -> Option<Val> {
- self.0.as_slice().get(index).map(|v| Val::string(*v))
- }
-}
-
impl ArrayCheap for IBytes {
fn len(&self) -> usize {
self.as_slice().len()
crates/jrsonnet-evaluator/src/typed/conversions.rsdiffbeforeafterboth--- a/crates/jrsonnet-evaluator/src/typed/conversions.rs
+++ b/crates/jrsonnet-evaluator/src/typed/conversions.rs
@@ -463,6 +463,11 @@
impl Typed for char {
const TYPE: &'static ComplexValType = &ComplexValType::Char;
}
+impl IntoUntyped for &char {
+ fn into_untyped(value: Self) -> Result<Val> {
+ Ok(Val::string(*value))
+ }
+}
impl IntoUntyped for char {
fn into_untyped(value: Self) -> Result<Val> {
Ok(Val::string(value))
crates/jrsonnet-evaluator/src/val.rsdiffbeforeafterboth266266267 pub fn to_array(self) -> ArrValue {267 pub fn to_array(self) -> ArrValue {268 match self {268 match self {269 Self::Str(s) => ArrValue::chars(s.chars()),269 Self::Str(s) => s.chars().collect(),270 Self::Arr(arr) => arr,270 Self::Arr(arr) => arr,271 }271 }272 }272 }crates/jrsonnet-stdlib/src/strings.rsdiffbeforeafterboth--- a/crates/jrsonnet-stdlib/src/strings.rs
+++ b/crates/jrsonnet-stdlib/src/strings.rs
@@ -223,7 +223,7 @@
#[builtin]
pub fn builtin_string_chars(str: IStr) -> ArrValue {
- ArrValue::chars(str.chars())
+ str.chars().collect()
}
#[builtin]