Struct cel_interpreter::extractors::Arguments
source · pub struct Arguments(pub Arc<Vec<Value>>);
Expand description
An argument extractor that extracts all the arguments passed to a function, resolves their
expressions and returns a vector of Value
. This is useful for functions that accept a
variable number of arguments rather than known arguments and types (for example a sum
function).
§Example
sum(1, 2.0, uint(3)) == 5.0
use cel_interpreter::extractors::Arguments;
pub fn sum(Arguments(args): Arguments) -> Value {
args.iter().fold(0.0, |acc, val| match val {
Value::Int(x) => *x as f64 + acc,
Value::UInt(x) => *x as f64 + acc,
Value::Float(x) => *x + acc,
_ => acc,
}).into()
}
Tuple Fields§
§0: Arc<Vec<Value>>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Arguments
impl RefUnwindSafe for Arguments
impl !Send for Arguments
impl !Sync for Arguments
impl Unpin for Arguments
impl UnwindSafe for Arguments
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more