pub struct Plugin<'a, O: Send + Sync, I: Info> { /* private fields */ }
Expand description
Represents a loaded plugin instance.
A Plugin encapsulates all the information and functionality related to a single plugin, including its metadata, execution state, and available functions.
§Type Parameters
'a
- Lifetime parameter for references within the pluginO
- Output type for plugin functions (must implement Send + Sync)I
- Plugin information type (must implement Info trait)
§Fields
manager
- Reference to the manager responsible for this plugininfo
- Plugin metadata and configurationis_load
- Whether the plugin is currently loaded and ready for executionrequests
- Functions that this plugin must implement at the request of the hostregistry
- Functions exposed by this plugin to other plugins or the host
Implementations§
Source§impl<'a, O: Send + Sync, I: Info> Plugin<'a, O, I>
impl<'a, O: Send + Sync, I: Info> Plugin<'a, O, I>
Sourcepub const fn info(&self) -> &PluginInfo<I>
pub const fn info(&self) -> &PluginInfo<I>
Returns information about this plugin.
§Returns
Returns a reference to the plugin’s metadata and configuration.
Sourcepub const fn is_load(&self) -> bool
pub const fn is_load(&self) -> bool
Checks if the plugin is currently loaded and ready for execution.
§Returns
Returns true
if the plugin is loaded, false
otherwise.
Sourcepub const fn get_requests(&self) -> &Vec<Box<dyn Function<Output = O>>>
pub const fn get_requests(&self) -> &Vec<Box<dyn Function<Output = O>>>
Returns the list of function requests this plugin must implement.
Function requests are functions that this plugin must implement at the request of the host. These are functions that the host can call on this plugin when needed.
§Returns
Returns a reference to the vector of function requests.
Sourcepub fn call_request(
&self,
name: &str,
args: &[Variable],
) -> Result<O, PluginCallRequestError>
pub fn call_request( &self, name: &str, args: &[Variable], ) -> Result<O, PluginCallRequestError>
Calls a function request by name with the given arguments.
This method searches through the plugin’s requests and executes the one matching the provided name. These are functions that the plugin implements for the host to call.
§Parameters
name
- Name of the function request to callargs
- Arguments to pass to the function
§Returns
Returns Result<O, PluginCallRequestError>
containing the function result on success,
or an error if the request is not found.
Sourcepub const fn get_registry(&self) -> &Registry<O>
pub const fn get_registry(&self) -> &Registry<O>
Returns the registry of functions exposed by this plugin.
The registry contains functions that this plugin makes available to other plugins or the host application.
§Returns
Returns a reference to the function registry.
Sourcepub fn register_function<F>(
&mut self,
function: F,
) -> Result<(), PluginRegisterFunctionError>where
F: Function<Output = O> + 'static,
pub fn register_function<F>(
&mut self,
function: F,
) -> Result<(), PluginRegisterFunctionError>where
F: Function<Output = O> + 'static,
Registers a new function in this plugin’s registry.
This method adds a function to the plugin’s registry, making it available for other plugins or the host to call.
§Parameters
function
- The function to register
§Returns
Returns Result<(), PluginRegisterFunctionError>
indicating success or failure.
Fails if a function with the same name is already registered.
Sourcepub fn call_function(
&self,
name: &str,
args: &[Variable],
) -> Result<O, PluginCallFunctionError>
pub fn call_function( &self, name: &str, args: &[Variable], ) -> Result<O, PluginCallFunctionError>
Calls a function from this plugin’s registry by name.
This method searches through the plugin’s registry and executes the function matching the provided name.
§Parameters
name
- Name of the function to callargs
- Arguments to pass to the function
§Returns
Returns Result<O, PluginCallFunctionError>
containing the function result on success,
or an error if the function is not found.
Trait Implementations§
Source§impl<O: Send + Sync, I: Info, ID: AsRef<str>> PartialOrd<(ID, &Version)> for Plugin<'_, O, I>
impl<O: Send + Sync, I: Info, ID: AsRef<str>> PartialOrd<(ID, &Version)> for Plugin<'_, O, I>
Source§impl<O: Send + Sync, I: Info> PartialOrd<Bundle> for Plugin<'_, O, I>
impl<O: Send + Sync, I: Info> PartialOrd<Bundle> for Plugin<'_, O, I>
Source§impl<O: Send + Sync, I: Info> PartialOrd<Plugin<'_, O, I>> for Bundle
impl<O: Send + Sync, I: Info> PartialOrd<Plugin<'_, O, I>> for Bundle
Source§impl<O: Send + Sync, I: Info> PartialOrd for Plugin<'_, O, I>
impl<O: Send + Sync, I: Info> PartialOrd for Plugin<'_, O, I>
impl<O: Send + Sync, I: Info> Eq for Plugin<'_, O, I>
Auto Trait Implementations§
impl<'a, O, I> !Freeze for Plugin<'a, O, I>
impl<'a, O, I> !RefUnwindSafe for Plugin<'a, O, I>
impl<'a, O, I> Send for Plugin<'a, O, I>
impl<'a, O, I> Sync for Plugin<'a, O, I>
impl<'a, O, I> Unpin for Plugin<'a, O, I>where
I: Unpin,
impl<'a, O, I> !UnwindSafe for Plugin<'a, O, I>
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
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.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 more