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§
Source§impl 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) -> Result<RuntimeContext>
pub fn runtime(&self) -> Result<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<M>(&mut self, module: M) -> Result<(), ContextError>
pub fn install<M>(&mut self, module: M) -> 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 lookup_deprecation(&self, hash: Hash) -> Option<&str>
pub fn lookup_deprecation(&self, hash: Hash) -> Option<&str>
Lookup deprecation by function hash.