Skip to main content

InitializedPluginHandle

Struct InitializedPluginHandle 

Source
pub struct InitializedPluginHandle<'a> { /* private fields */ }
Expand description

A handle to a plugin instance that has finished initializing.

This handle can be used to obtain a PluginSharedHandle to then call the plugin’s thread-safe method.

However, this handle can outlive the plugin instance, as host callbacks may be called during the plugin’s destruction.

Therefore, the PluginSharedHandle can only be accessed through the access method, ensuring no access can be made during or after destruction.

Implementations§

Source§

impl<'a> InitializedPluginHandle<'a>

Source

pub const fn as_raw(&self) -> &'a clap_plugin

Returns a shared reference to the raw, C-FFI compatible plugin instance struct.

This type enforces that the reference is valid for the lifetime of the instance ('a).

If you need to access the raw pointer without dereferencing it first, use as_raw_ptr instead.

Source

pub const fn as_raw_ptr(&self) -> *const clap_plugin

Returns a raw pointer to the raw, C-FFI compatible plugin instance struct, without dereferencing it.

If you need to safely access the plugin instance struct through a shared reference, use as_raw instead.

Source

pub fn access<T>( &self, f: impl FnOnce(PluginSharedHandle<'_>) -> T, ) -> Option<T>

Attempts to access and perform the given operation on the plugin’s handle, returning its result.

This method will return None if the plugin instance is being or has been destroyed, and f will not be called.

However, this method guarantees that the plugin instance will block starting its destruction while the given operation f is still ongoing.

This ensures the plugin instance is always valid if and when f runs.

§Realtime safety

This method may block the current thread if it is called concurrently while the plugin’s instance is being destroyed (i.e. PluginInstance::drop is running).

Source

pub fn get_extension<E: Extension<ExtensionSide = PluginExtensionSide>>( &self, ) -> Option<E>

Retrieves the plugin’s pointer to the given extension type E.

This returns None if the plugin does not support the given extension.

Trait Implementations§

Source§

impl<'a> Clone for InitializedPluginHandle<'a>

Source§

fn clone(&self) -> InitializedPluginHandle<'a>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for InitializedPluginHandle<'_>

Source§

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

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

impl<'a> Eq for InitializedPluginHandle<'a>

Source§

impl<'a> PartialEq for InitializedPluginHandle<'a>

Source§

fn eq(&self, other: &InitializedPluginHandle<'a>) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl<'a> StructuralPartialEq for InitializedPluginHandle<'a>

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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.