Skip to main content

HostExtension

Trait HostExtension 

Source
pub trait HostExtension: Send + Sync {
    // Required method
    fn install(&self, interp: &mut Interpreter<VigyHost>);
}
Expand description

Pluggable intrinsic pack. The framework ships six standard extensions (Actions, State, Kv, Convergence, Scheduling, Diagnostics) — together they form standard_extensions(). Hosts add their own by implementing this trait and passing their impls to evaluate_with_extensions alongside the standard set.

Implementations should be cheap to construct + cheap to clone; the runtime currently instantiates them per-tick (room to cache later once a real benchmark calls for it).

Required Methods§

Source

fn install(&self, interp: &mut Interpreter<VigyHost>)

Register every intrinsic this extension owns on the interpreter. Idempotent within a single evaluation — registering twice on the same interpreter overrides the prior binding (tatara-lisp’s default behaviour). Across different interpreter instances each install is independent.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§