Skip to main content

LoadedPlugin

Struct LoadedPlugin 

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

One loaded plug-in. Holds the Library alive for the process lifetime so the manifest pointer never dangles.

library is wrapped in ManuallyDrop so dropping the LoadedPlugin (or the owning PluginLoader) does NOT dlclose the cdylib. v1 leaks the handle intentionally: any manifest, vtable, or drop_fn pointer the host has copied into its registries must outlive the loader. Unloading would dangle every such pointer, and a later custom-data drop call would jump into freed code.

Implementations§

Source§

impl LoadedPlugin

Source

pub fn path(&self) -> &Path

Returns the file path this plug-in was loaded from.

Source

pub fn manifest(&self) -> &PluginManifest

Returns the manifest the plug-in published at init time.

Source

pub fn validated_manifest(&self) -> ValidatedPluginManifest<'static>

Returns a host-side manifest view that carries validation invariants.

Trait Implementations§

Source§

impl Debug for LoadedPlugin

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Send for LoadedPlugin

SAFETY: LoadedPlugin only exposes the manifest through &self, and the manifest is immutable static data inside the loaded library.

Source§

impl Sync for LoadedPlugin

SAFETY: see above.

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

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.