#[non_exhaustive]pub struct PluginSubmission {
pub factory: fn() -> Box<dyn ActionPlugin>,
}Expand description
Submission record for compile-time plugin collection via inventory.
Each Tier-1 built-in ships an inventory::submit! block (gated by the
same feature) pointing at this type, so a consumer opting into
plugin-inventory can construct a Registry purely from linker-time
registrations instead of calling register_builtins explicitly.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.factory: fn() -> Box<dyn ActionPlugin>Factory producing a boxed plugin instance. Invoked once per
submission during Registry::register_from_inventory.
Implementations§
Source§impl PluginSubmission
impl PluginSubmission
Sourcepub const fn new(factory: fn() -> Box<dyn ActionPlugin>) -> Self
pub const fn new(factory: fn() -> Box<dyn ActionPlugin>) -> Self
Construct a submission from a plugin factory. Prefer this over
struct-literal syntax so future fields can be added without
breaking downstream inventory::submit! sites (the type is
#[non_exhaustive]).
Trait Implementations§
impl Collect for PluginSubmission
Auto Trait Implementations§
impl Freeze for PluginSubmission
impl RefUnwindSafe for PluginSubmission
impl Send for PluginSubmission
impl Sync for PluginSubmission
impl Unpin for PluginSubmission
impl UnsafeUnpin for PluginSubmission
impl UnwindSafe for PluginSubmission
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> 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