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> AnyExt for T
impl<T> AnyExt for T
Source§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
Attempts to downcast this to
T
behind referenceSource§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
Attempts to downcast this to
T
behind mutable referenceSource§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
Attempts to downcast this to
T
behind Rc
pointerSource§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
Attempts to downcast this to
T
behind Arc
pointerSource§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