pub struct QuickJsRuntime { /* private fields */ }Expand description
QuickJS-backed runtime adapter. One instance is reusable across many
documents; callers MUST invoke XfaJsRuntime::reset_for_new_document
at the start of each flatten.
Implementations§
Source§impl QuickJsRuntime
impl QuickJsRuntime
Sourcepub fn new() -> Result<Self, SandboxError>
pub fn new() -> Result<Self, SandboxError>
Construct a new sandboxed runtime with default budgets.
Sourcepub fn with_time_budget(self, budget: Duration) -> Self
pub fn with_time_budget(self, budget: Duration) -> Self
Override the per-script wall-clock budget. Must be called before any
execute_script invocation; takes effect on the next call.
Sourcepub fn with_memory_budget(self, bytes: usize) -> Self
pub fn with_memory_budget(self, bytes: usize) -> Self
Override the per-document memory budget. Must be called before any
execute_script invocation; takes effect on the next document.
Trait Implementations§
Source§impl Debug for QuickJsRuntime
impl Debug for QuickJsRuntime
Source§impl XfaJsRuntime for QuickJsRuntime
impl XfaJsRuntime for QuickJsRuntime
Source§fn reset_for_new_document(&mut self) -> Result<(), SandboxError>
fn reset_for_new_document(&mut self) -> Result<(), SandboxError>
Reset per-document state (memory budget, instruction counter,
any cached compiled scripts). Called once per flatten.
Source§fn set_form_handle(
&mut self,
form: *mut FormTree,
root_id: FormNodeId,
) -> Result<(), SandboxError>
fn set_form_handle( &mut self, form: *mut FormTree, root_id: FormNodeId, ) -> Result<(), SandboxError>
Phase C: install the
FormTree the runtime should resolve paths
against and mutate. The dispatch path owns the mutable borrow and clears
the handle before returning.Source§fn set_data_handle(&mut self, dom: *const DataDom)
fn set_data_handle(&mut self, dom: *const DataDom)
Phase D-γ: install a read-only view of the
DataDom for the current
document. Called once per document after set_form_handle, before any
scripts run. Default: no-op (backends without DataDom support ignore it). Read moreSource§fn reset_per_script(
&mut self,
current_id: FormNodeId,
activity: Option<&str>,
) -> Result<(), SandboxError>
fn reset_per_script( &mut self, current_id: FormNodeId, activity: Option<&str>, ) -> Result<(), SandboxError>
Phase C: reset per-script host counters and install the current script
context node / activity. Backends without host bindings ignore it.
Source§fn set_static_page_count(&mut self, page_count: u32) -> Result<(), SandboxError>
fn set_static_page_count(&mut self, page_count: u32) -> Result<(), SandboxError>
Phase C page-count foundation. The current flatten order runs scripts
before layout, so callers normally leave this at 0.
Source§fn execute_script(
&mut self,
activity: Option<&str>,
body: &str,
) -> Result<RuntimeOutcome, SandboxError>
fn execute_script( &mut self, activity: Option<&str>, body: &str, ) -> Result<RuntimeOutcome, SandboxError>
Execute one script body inside the sandbox. Read more
Source§fn take_metadata(&mut self) -> RuntimeMetadata
fn take_metadata(&mut self) -> RuntimeMetadata
Take the cumulative metadata since the last
take_metadata
call (or since reset_for_new_document, whichever was later).Auto Trait Implementations§
impl Freeze for QuickJsRuntime
impl !RefUnwindSafe for QuickJsRuntime
impl !Send for QuickJsRuntime
impl !Sync for QuickJsRuntime
impl Unpin for QuickJsRuntime
impl UnsafeUnpin for QuickJsRuntime
impl !UnwindSafe for QuickJsRuntime
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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 more