pub struct PluginManager { /* private fields */ }Expand description
Manages the lifecycle of a Haskell WASM plugin.
Loads a WASM module from embedded bytes and registers a single host function
(yield_effect) that dispatches all effects through the EffectRegistry.
§Architecture
PluginManager::call("handle_mcp_call", input)
↓
WASM Guest (Haskell) - pure logic, yields effects
↓
yield_effect host function → EffectRegistry::dispatch
↓
EffectHandler implementations (git, github, custom, ...)Implementations§
Source§impl PluginManager
impl PluginManager
Sourcepub async fn new(
wasm_bytes: &[u8],
registry: Arc<EffectRegistry>,
) -> Result<Self>
pub async fn new( wasm_bytes: &[u8], registry: Arc<EffectRegistry>, ) -> Result<Self>
Load a WASM plugin from bytes and register the yield_effect host function.
§Arguments
wasm_bytes- WASM binary content (embedded at compile time)registry- Effect registry for dispatching all effects
Sourcepub fn content_hash(&self) -> &str
pub fn content_hash(&self) -> &str
Get the SHA256 content hash of the loaded WASM binary (first 12 hex chars).
Trait Implementations§
Source§impl Clone for PluginManager
impl Clone for PluginManager
Source§fn clone(&self) -> PluginManager
fn clone(&self) -> PluginManager
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for PluginManager
impl RefUnwindSafe for PluginManager
impl Send for PluginManager
impl Sync for PluginManager
impl Unpin for PluginManager
impl UnwindSafe for PluginManager
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> GetSetFdFlags for T
impl<T> GetSetFdFlags for T
Source§fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
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,
fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
Source§fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: AsFilelike,
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 moreSource§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>
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