Struct arithmetic_eval::fns::Len
source · pub struct Len;
Expand description
Function returning array / object length.
§Type
(using arithmetic-typing
notation)
([T]) -> Num
§Examples
let program = "len(()) == 0 && len((1, 2, 3)) == 3";
let program = Untyped::<F32Grammar>::parse_statements(program)?;
let module = ExecutableModule::new("tes_len", &program)?;
let mut env = Environment::new();
env.insert_native_fn("len", fns::Len);
assert_eq!(module.with_env(&env)?.run()?, Value::Bool(true));
Trait Implementations§
source§impl<T: FromPrimitive> NativeFn<T> for Len
impl<T: FromPrimitive> NativeFn<T> for Len
source§fn evaluate(
&self,
args: Vec<SpannedValue<T>>,
ctx: &mut CallContext<'_, T>,
) -> EvalResult<T>
fn evaluate( &self, args: Vec<SpannedValue<T>>, ctx: &mut CallContext<'_, T>, ) -> EvalResult<T>
Executes the function on the specified arguments.
impl Copy for Len
Auto Trait Implementations§
impl Freeze for Len
impl RefUnwindSafe for Len
impl Send for Len
impl Sync for Len
impl Unpin for Len
impl UnwindSafe for Len
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
source§impl<T> CloneToUninit for Twhere
T: Copy,
impl<T> CloneToUninit for Twhere
T: Copy,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)