Skip to main content

PluginSet

Struct PluginSet 

Source
pub struct PluginSet { /* private fields */ }
Expand description

The loaded modules of one app, in declaration order.

Libraries are dlopen’d once and held for the process lifetime: a plugin hands out function bodies, threads, and a host handle, none of which survive the code they live in being unmapped.

Implementations§

Source§

impl PluginSet

Source

pub fn load( modules: &[ResolvedModule], env: &InitEnv, hooks: Arc<dyn HostHooks>, ) -> (Self, Vec<LoadFailure>)

Load every module, in order. Each one that fails is collected with its name, the file that was probed, and the reason; the rest load.

Source

pub fn install(&self, app: &mut App)

Bind every loaded module’s functions and language sources onto the app, in declaration order.

The bodies call back into the plugin, so this runs before the script hosts load and the app keeps the set alive for as long as it runs.

Source

pub fn shutdown(&self)

Tell every module the app is going down, in declaration order. Best effort: a module that exports no shutdown is skipped, and the libraries stay mapped either way.

Source

pub fn names(&self) -> impl Iterator<Item = &str>

The names of the loaded modules, in declaration order.

Source

pub fn len(&self) -> usize

How many modules loaded.

Source

pub fn is_empty(&self) -> bool

Whether nothing loaded.

Auto Trait Implementations§

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.

§

impl<T> Instrument for T

§

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

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

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.

§

impl<T> IntoResult<T> for T

§

fn into_result(self) -> Result<T, RunSystemError>

Converts this type into the system output type.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

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>,

Source§

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

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> ConditionalSend for T
where T: Send,