pub struct PluginManager { /* private fields */ }Expand description
Plugin manager that caches loaded plugins.
Implementations§
Source§impl PluginManager
impl PluginManager
Sourcepub const fn with_config(config: RuntimeConfig) -> Self
pub const fn with_config(config: RuntimeConfig) -> Self
Create a plugin manager with custom configuration.
Sourcepub fn load_bytes(
&mut self,
name: impl Into<String>,
bytes: &[u8],
) -> Result<usize>
pub fn load_bytes( &mut self, name: impl Into<String>, bytes: &[u8], ) -> Result<usize>
Load a plugin from bytes.
Sourcepub fn execute(&self, index: usize, input: &PluginInput) -> Result<PluginOutput>
pub fn execute(&self, index: usize, input: &PluginInput) -> Result<PluginOutput>
Execute a plugin by index.
Sourcepub fn execute_all(&self, input: PluginInput) -> Result<PluginOutput>
pub fn execute_all(&self, input: PluginInput) -> Result<PluginOutput>
Execute all loaded plugins in sequence.
Note: because the ops protocol references the plugin’s input
indices and execute_all chains plugins by materializing each
stage’s ops before feeding the next, the final ops returned
here describe the result relative to the original input as a
rebuild: every output directive is encoded as
PluginOp::Insert and every original input is encoded as
PluginOp::Delete. Loader callers don’t go through this
path — they apply ops one plugin at a time — so this simplifies
the multi-plugin WASM-runtime case to “here’s the resulting
directive list” without losing the protocol’s invariants.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for PluginManager
impl !RefUnwindSafe for PluginManager
impl Send for PluginManager
impl Sync for PluginManager
impl Unpin for PluginManager
impl UnsafeUnpin for PluginManager
impl !UnwindSafe for PluginManager
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.