Struct marine::generic::MarineCore

source ·
pub struct MarineCore<WB>
where WB: WasmBackend,
{ /* private fields */ }
Expand description

§Description

The base struct of Marine, the Fluence compute runtime. Allows dynamic loading and unloading modules, but never frees resources used for instantiation. A new module can import functions from previously loaded modules.

§Recommendations

Its not recommended to use this struct to load/unload unlimited number of modules. Better alternative is to use multiple instances of this struct for independent groups of modules and drop them when the group is no longer needed.

Implementations§

source§

impl<WB> MarineCore<WB>
where WB: WasmBackend,

source

pub fn new(config: MarineCoreConfig) -> Result<MarineCore<WB>, MError>

source

pub fn call( &mut self, module_name: impl AsRef<str>, func_name: impl AsRef<str>, arguments: &[IValue] ) -> Result<Vec<IValue>, MError>

Invoke a function of a module inside Marine by given function name with given arguments.

source

pub fn load_module( &mut self, name: impl Into<String>, wasm_bytes: &[u8], config: MModuleConfig<WB> ) -> Result<(), MError>

Load a new module inside Marine.

source

pub fn unload_module(&mut self, name: impl AsRef<str>) -> Result<(), MError>

Unload previously loaded module.

source

pub fn module_wasi_state<'s>( &'s mut self, module_name: impl AsRef<str> ) -> Option<Box<dyn WasiState + 's>>

source

pub fn interface(&self) -> impl Iterator<Item = (&str, MModuleInterface<'_>)>

Return function signatures of all loaded info Marine modules with their names.

source

pub fn module_interface( &self, module_name: impl AsRef<str> ) -> Option<MModuleInterface<'_>>

Return function signatures exported by module with given name.

source

pub fn module_record_types( &self, module_name: impl AsRef<str> ) -> Option<&HashMap<u64, Arc<RecordType>>>

Return record types exported by module with given name.

source

pub fn module_record_type_by_id( &self, module_name: impl AsRef<str>, record_id: u64 ) -> Option<&Arc<RecordType>>

Return record type for supplied record id exported by module with given name.

source

pub fn module_memory_stats(&self) -> MemoryStats<'_>

Returns a heap size that all modules consume in bytes.

source

pub fn clear_allocation_stats(&mut self)

Auto Trait Implementations§

§

impl<WB> !Freeze for MarineCore<WB>

§

impl<WB> !RefUnwindSafe for MarineCore<WB>

§

impl<WB> Send for MarineCore<WB>
where WB: Send, <WB as WasmBackend>::Instance: Send, <WB as WasmBackend>::Store: Send,

§

impl<WB> !Sync for MarineCore<WB>

§

impl<WB> Unpin for MarineCore<WB>
where WB: Unpin, <WB as WasmBackend>::Store: Unpin,

§

impl<WB> !UnwindSafe for MarineCore<WB>

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> GetSetFdFlags for T

source§

fn get_fd_flags(&self) -> Result<FdFlags, Error>
where T: AsFilelike,

Query the “status” flags for the self file descriptor.
source§

fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>
where T: AsFilelike,

Create a new SetFdFlags value for use with set_fd_flags. Read more
source§

fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>
where T: AsFilelike,

Set the “status” flags for the self file descriptor. Read more
source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Pointee for T

§

type Pointer = u32

source§

fn debug( pointer: <T as Pointee>::Pointer, f: &mut Formatter<'_> ) -> Result<(), Error>

source§

impl<T> Same for T

§

type Output = T

Should always be Self
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.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

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
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more