Trait Module

Source
pub trait Module<'vm>: Debug + DynClone {
    // Required methods
    fn name(&self) -> &'static str;
    fn trait_definition(&self) -> &'static str;

    // Provided methods
    fn call(&self, function: &'vm str, args: RigzArgs) -> Result<Value, VMError> { ... }
    fn call_extension(
        &self,
        this: Rc<RefCell<Value>>,
        function: &'vm str,
        args: RigzArgs,
    ) -> Result<Value, VMError> { ... }
    fn call_mutable_extension(
        &self,
        this: Rc<RefCell<Value>>,
        function: &'vm str,
        args: RigzArgs,
    ) -> Result<Option<Value>, VMError> { ... }
    fn vm_extension(
        &self,
        vm: &mut VM<'vm>,
        function: &'vm str,
        args: RigzArgs,
    ) -> Result<Value, VMError> { ... }
}

Required Methods§

Source

fn name(&self) -> &'static str

Source

fn trait_definition(&self) -> &'static str

Provided Methods§

Source

fn call(&self, function: &'vm str, args: RigzArgs) -> Result<Value, VMError>

Source

fn call_extension( &self, this: Rc<RefCell<Value>>, function: &'vm str, args: RigzArgs, ) -> Result<Value, VMError>

Source

fn call_mutable_extension( &self, this: Rc<RefCell<Value>>, function: &'vm str, args: RigzArgs, ) -> Result<Option<Value>, VMError>

Source

fn vm_extension( &self, vm: &mut VM<'vm>, function: &'vm str, args: RigzArgs, ) -> Result<Value, VMError>

Implementors§

Source§

impl<'vm> Module<'vm> for AnyModule

Source§

impl<'vm> Module<'vm> for AssertionsModule

Source§

impl<'vm> Module<'vm> for CollectionsModule

Source§

impl<'vm> Module<'vm> for DateModule

Source§

impl<'vm> Module<'vm> for FileModule

Source§

impl<'vm> Module<'vm> for JSONModule

Source§

impl<'vm> Module<'vm> for LogModule

Source§

impl<'vm> Module<'vm> for MathModule

Source§

impl<'vm> Module<'vm> for NumberModule

Source§

impl<'vm> Module<'vm> for RandomModule

Source§

impl<'vm> Module<'vm> for StringModule

Source§

impl<'vm> Module<'vm> for UUIDModule

Source§

impl<'vm> Module<'vm> for VMModule