pub struct Script {
pub engine: Engine,
pub ctx: Scope<'static>,
}rhai only.Expand description
Rhai engine + evaluation scope.
Create with Script::new_bare, register extra functions on engine if needed,
then evaluate files or snippets. See crate docs for the list of built-in helpers.
Fields§
§engine: EngineThe Rhai engine (register extra fns here before evaluating).
ctx: Scope<'static>Persistent scope (variables set via Script::set_dynamic).
Implementations§
Source§impl Script
impl Script
Sourcepub fn new_bare(resolver_path: Vec<String>) -> Script
pub fn new_bare(resolver_path: Vec<String>) -> Script
Create a new engine with generic helpers registered and resolver_path added to the
module resolver. resolver_path is a list of directories searched by import statements.
let mut s = vynil_core::engine::Script::new_bare(vec![]);
assert_eq!(s.eval("sha256(\"hello\")").unwrap().into_string().unwrap(),
"2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824");Sourcepub fn add_common(&mut self)
pub fn add_common(&mut self)
Inject assert and import_run/import_template shims (called by new_bare).
Sourcepub fn add_code(&mut self, code: &str)
pub fn add_code(&mut self, code: &str)
Compile code and register its public functions as global Rhai modules.
Errors are logged via tracing::error! and otherwise ignored.
Sourcepub fn set_dynamic(&mut self, name: &str, val: &Value)
pub fn set_dynamic(&mut self, name: &str, val: &Value)
Push a JSON value into the persistent Rhai scope under name.
Sourcepub fn run_file(&mut self, file: &PathBuf) -> Result<Dynamic, Error>
pub fn run_file(&mut self, file: &PathBuf) -> Result<Dynamic, Error>
Evaluate the Rhai file at file inside the persistent scope.
Sourcepub fn eval(&mut self, script: &str) -> Result<Dynamic, Error>
pub fn eval(&mut self, script: &str) -> Result<Dynamic, Error>
Evaluate a Rhai snippet and return its Dynamic result.
Sourcepub fn eval_truth(&mut self, script: &str) -> Result<bool, Error>
pub fn eval_truth(&mut self, script: &str) -> Result<bool, Error>
Evaluate a Rhai snippet expected to return bool.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for Script
impl !RefUnwindSafe for Script
impl !UnwindSafe for Script
impl Send for Script
impl Sync for Script
impl Unpin for Script
impl UnsafeUnpin for Script
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> ServiceExt for T
impl<T> ServiceExt for T
Source§fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
map-response-body only.Source§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
trace only.Source§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
trace only.Source§fn follow_redirects(self) -> FollowRedirect<Self>where
Self: Sized,
fn follow_redirects(self) -> FollowRedirect<Self>where
Self: Sized,
follow-redirect only.