diff --git a/rad/src/error.rs b/rad/src/error.rs index 3eeb11c3f..e27834450 100644 --- a/rad/src/error.rs +++ b/rad/src/error.rs @@ -564,6 +564,7 @@ impl RadError { }; Some(serialize_args((message,))?) } + RadError::BufferIsNotValue { description } => Some(serialize_args((description,))?), _ => None, }; @@ -770,6 +771,9 @@ mod tests { inner: None, message: Some("Only the message field is serialized".to_string()), }, + RadonErrors::BufferIsNotValue => RadError::BufferIsNotValue { + description: "Buffer is no value".to_string(), + }, // If this panics after adding a new `RadonTypes`, add a new example above _ => panic!("No example for {:?}", radon_errors), } diff --git a/rad/src/operators/array.rs b/rad/src/operators/array.rs index 468e0bf07..1f3c809cd 100644 --- a/rad/src/operators/array.rs +++ b/rad/src/operators/array.rs @@ -123,23 +123,9 @@ pub fn join(input: &RadonArray, args: &[Value]) -> Result } else { String::from("") }; - match input.value().first() { + match input.value().first() { Some(RadonTypes::String(_)) => { - let string_list: Vec = input.value().into_iter().map(|item| - RadonString::try_from(item).unwrap_or_default().value() - ).collect(); - Ok(RadonTypes::from(RadonString::from(string_list.join(separator.as_str())))) - } - Some(first_item) => { - Err(RadError::UnsupportedOperator { - input_type: first_item.radon_type_name().to_string(), - operator: "ArrayJoin".to_string(), - args: Some(args.to_vec()) - }) - } - _ => { - Err(RadError::EmptyArray) - } + let string_list: Vec = input .value() .into_iter() .map(|item| RadonString::try_from(item).unwrap_or_default().value()) @@ -147,6 +133,9 @@ pub fn join(input: &RadonArray, args: &[Value]) -> Result Ok(RadonTypes::from(RadonString::from( string_list.join(separator.as_str()), ))) + } + Some(first_item) => Err(RadError::UnsupportedOperator { + input_type: first_item.radon_type_name().to_string(), operator: "ArrayJoin".to_string(), args: Some(args.to_vec()), }),