pub struct Context { /* private fields */ }Expand description
Context used for the Rune language.
See Build::with_context.
At runtime this needs to be converted into a RuntimeContext when used with a Vm. This is done through Context::runtime.
A Context contains:
- Native functions.
- Native instance functions.
- And native type definitions.
Implementations
sourceimpl Context
impl Context
sourcepub fn with_config(stdio: bool) -> Result<Self, ContextError>
pub fn with_config(stdio: bool) -> Result<Self, ContextError>
Construct a Context containing the default set of modules with the given configuration.
stdio determines if we include I/O functions that interact with stdout
and stderr by default, like dbg, print, and println. If this is
false all the corresponding low-level I/O functions have to be
provided through a different module.
These are:
::std::io::dbg::std::io::print::std::io::println
sourcepub fn with_default_modules() -> Result<Self, ContextError>
pub fn with_default_modules() -> Result<Self, ContextError>
Construct a new collection of functions with default packages installed.
sourcepub fn runtime(&self) -> RuntimeContext
pub fn runtime(&self) -> RuntimeContext
Construct a runtime context used when executing the virtual machine.
This is not a cheap operation, since it requires cloning things out of the build-time Context which are necessary at runtime.
use rune::{Context, Vm, Unit};
use std::sync::Arc;
let context = Context::with_default_modules()?;
let runtime = Arc::new(context.runtime());
let unit = Arc::new(Unit::default());
let vm = Vm::new(runtime, unit);sourcepub fn install(&mut self, module: &Module) -> Result<(), ContextError>
pub fn install(&mut self, module: &Module) -> Result<(), ContextError>
Install the specified module.
This installs everything that has been declared in the given Module and ensures that they are compatible with the overall context, like ensuring that a given type is only declared once.
sourcepub fn iter_functions(&self) -> impl Iterator<Item = (Hash, &ContextSignature)>
pub fn iter_functions(&self) -> impl Iterator<Item = (Hash, &ContextSignature)>
Iterate over all available functions in the Context.
sourcepub fn iter_types(&self) -> impl Iterator<Item = (Hash, &ContextTypeInfo)>
pub fn iter_types(&self) -> impl Iterator<Item = (Hash, &ContextTypeInfo)>
Iterate over all available types in the Context.
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for Context
impl Send for Context
impl Sync for Context
impl Unpin for Context
impl !UnwindSafe for Context
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber to this type, returning a
WithDispatch wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber to this type, returning a
WithDispatch wrapper. Read more