Struct deno_core::RuntimeOptions

source ·
pub struct RuntimeOptions {
Show 21 fields pub source_map_getter: Option<Rc<dyn SourceMapGetter>>, pub get_error_class_fn: Option<GetErrorClassFn>, pub module_loader: Option<Rc<dyn ModuleLoader>>, pub extension_transpiler: Option<Rc<dyn Fn(ModuleName, ModuleCodeString) -> Result<(ModuleCodeString, Option<SourceMapData>), AnyError>>>, pub op_metrics_factory_fn: Option<OpMetricsFactoryFn>, pub extensions: Vec<Extension>, pub startup_snapshot: Option<&'static [u8]>, pub skip_op_registration: bool, pub create_params: Option<CreateParams>, pub v8_platform: Option<SharedRef<Platform>>, pub shared_array_buffer_store: Option<SharedArrayBufferStore>, pub compiled_wasm_module_store: Option<CompiledWasmModuleStore>, pub inspector: bool, pub is_main: bool, pub feature_checker: Option<Arc<FeatureChecker>>, pub validate_import_attributes_cb: Option<ValidateImportAttributesCb>, pub import_meta_resolve_callback: Option<Box<dyn Fn(&dyn ModuleLoader, String, String) -> Result<ModuleSpecifier, Error>>>, pub wait_for_inspector_disconnect_callback: Option<Box<dyn Fn()>>, pub custom_module_evaluation_cb: Option<Box<dyn Fn(&mut HandleScope<'_>, Cow<'_, str>, &FastString, ModuleSourceCode) -> Result<CustomModuleEvaluationKind, AnyError>>>, pub enable_code_cache: bool, pub eval_context_code_cache_cbs: Option<(Box<dyn Fn(&str) -> Result<Option<Cow<'static, [u8]>>, AnyError>>, Box<dyn Fn(&str, &[u8])>)>,
}

Fields§

§source_map_getter: Option<Rc<dyn SourceMapGetter>>

Source map reference for errors.

§get_error_class_fn: Option<GetErrorClassFn>

Allows to map error type to a string “class” used to represent error in JavaScript.

§module_loader: Option<Rc<dyn ModuleLoader>>

Implementation of ModuleLoader which will be called when V8 requests to load ES modules in the main realm.

If not provided runtime will error if code being executed tries to load modules.

§extension_transpiler: Option<Rc<dyn Fn(ModuleName, ModuleCodeString) -> Result<(ModuleCodeString, Option<SourceMapData>), AnyError>>>

If specified, transpiles extensions before loading.

§op_metrics_factory_fn: Option<OpMetricsFactoryFn>

Provide a function that may optionally provide a metrics collector for a given op.

§extensions: Vec<Extension>

JsRuntime extensions, not to be confused with ES modules. Only ops registered by extensions will be initialized. If you need to execute JS code from extensions, pass source files in js or esm option on ExtensionBuilder.

If you are creating a runtime from a snapshot take care not to include JavaScript sources in the extensions.

§startup_snapshot: Option<&'static [u8]>

V8 snapshot that should be loaded on startup.

For testing, use runtime.snapshot() and then Box::leak to acquire

§skip_op_registration: bool

Should op registration be skipped?

§create_params: Option<CreateParams>

Isolate creation parameters.

§v8_platform: Option<SharedRef<Platform>>

V8 platform instance to use. Used when Deno initializes V8 (which it only does once), otherwise it’s silently dropped.

§shared_array_buffer_store: Option<SharedArrayBufferStore>

The store to use for transferring SharedArrayBuffers between isolates. If multiple isolates should have the possibility of sharing SharedArrayBuffers, they should use the same SharedArrayBufferStore. If no SharedArrayBufferStore is specified, SharedArrayBuffer can not be serialized.

§compiled_wasm_module_store: Option<CompiledWasmModuleStore>

The store to use for transferring WebAssembly.Module objects between isolates. If multiple isolates should have the possibility of sharing WebAssembly.Module objects, they should use the same CompiledWasmModuleStore. If no CompiledWasmModuleStore is specified, WebAssembly.Module objects cannot be serialized.

§inspector: bool

Start inspector instance to allow debuggers to connect.

§is_main: bool

Describe if this is the main runtime instance, used by debuggers in some situation - like disconnecting when program finishes running.

§feature_checker: Option<Arc<FeatureChecker>>

An optional instance of FeatureChecker. If one is not provided, the default instance will be created that has no features enabled.

§validate_import_attributes_cb: Option<ValidateImportAttributesCb>

A callback that can be used to validate import attributes received at the import site. If no callback is provided, all attributes are allowed.

Embedders might use this callback to eg. validate value of “type” attribute, not allowing other types than “JSON”.

To signal validation failure, users should throw an V8 exception inside the callback.

§import_meta_resolve_callback: Option<Box<dyn Fn(&dyn ModuleLoader, String, String) -> Result<ModuleSpecifier, Error>>>

A callback that can be used to customize behavior of import.meta.resolve() API. If no callback is provided, a default one is used. The default callback returns value of RuntimeOptions::module_loader::resolve() call.

§wait_for_inspector_disconnect_callback: Option<Box<dyn Fn()>>

A callback that is called when the event loop has no more work to do, but there are active, non-blocking inspector session (eg. Chrome DevTools inspector is connected). The embedder can use this callback to eg. print a message notifying user about program finished running. This callback can be called multiple times, eg. after the program finishes more work can be scheduled from the DevTools.

§custom_module_evaluation_cb: Option<Box<dyn Fn(&mut HandleScope<'_>, Cow<'_, str>, &FastString, ModuleSourceCode) -> Result<CustomModuleEvaluationKind, AnyError>>>

A callback that allows to evaluate a custom type of a module - eg. embedders might implement loading WASM or test modules.

§enable_code_cache: bool§eval_context_code_cache_cbs: Option<(Box<dyn Fn(&str) -> Result<Option<Cow<'static, [u8]>>, AnyError>>, Box<dyn Fn(&str, &[u8])>)>

Callbacks to retrieve and store code cache for scripts evaluated through evalContext.

Trait Implementations§

source§

impl Default for RuntimeOptions

source§

fn default() -> RuntimeOptions

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> Conv for T

source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
source§

impl<T> FmtForward for T

source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Pipe for T
where T: ?Sized,

source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
source§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
source§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
source§

impl<T> Tap for T

source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
source§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
source§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
source§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
source§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
source§

impl<T> TryConv for T

source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.