Struct VTable

Source
#[repr(C)]
pub struct VTable { pub plugin_free: extern "C" fn(*mut PluginData), pub plugin_init: unsafe extern "C" fn(*mut PluginData) -> c_int, pub error_message_ns: extern "C" fn(c_int) -> *const c_uchar, pub attribute_count: unsafe extern "C" fn(plugin_data: *const PluginData, count: *mut size_t) -> c_int, pub attribute_ids: unsafe extern "C" fn(plugin_data: *const PluginData, ids: *mut size_t, _: size_t) -> c_int, pub attribute_name: unsafe extern "C" fn(plugin_data: *const PluginData, id: size_t, buffer: *mut c_uchar, length: size_t) -> c_int, pub attribute_pre_init: unsafe extern "C" fn(plugin_data: *const PluginData, id: size_t, pre_init: *mut c_char) -> c_int, pub attribute_value: unsafe extern "C" fn(plugin_data: *const PluginData, id: size_t, value: *mut Val, phase: Phase) -> c_int, pub set_attribute_value: unsafe extern "C" fn(plugin_data: *mut PluginData, id: size_t, value: *const Val, phase: Phase) -> c_int, }
Expand description

A table of function pointers that comprise the plugin API for the foreign function interface.

By default, functions in the VTable return a number that represents a status code that maps onto a particular reason for an error. All functions should use the same mapping between status code and reason.

Functions that return values that do not represent status codes have names that end in the characters ‘_ns’ that stand for “no status.”

Fields§

§plugin_free: extern "C" fn(*mut PluginData)

Frees the memory associated with a plugin’s data.

§plugin_init: unsafe extern "C" fn(*mut PluginData) -> c_int

Initializes a plugin.

This method is distinct from the kpal_plugin_new FFI call in that it actually communicates with the hardware, whereas kpal_plugin_new is used merely to create the plugin data structures.

§error_message_ns: extern "C" fn(c_int) -> *const c_uchar

Returns an error message associated with a Plugin error code.

§attribute_count: unsafe extern "C" fn(plugin_data: *const PluginData, count: *mut size_t) -> c_int

Returns the number of attributes of the plugin.

§attribute_ids: unsafe extern "C" fn(plugin_data: *const PluginData, ids: *mut size_t, _: size_t) -> c_int

Returns the attribute IDs in a buffer provided by the caller.

§attribute_name: unsafe extern "C" fn(plugin_data: *const PluginData, id: size_t, buffer: *mut c_uchar, length: size_t) -> c_int

Writes the name of an attribute to a buffer that is provided by the caller.

§attribute_pre_init: unsafe extern "C" fn(plugin_data: *const PluginData, id: size_t, pre_init: *mut c_char) -> c_int

Indicates whether an attribute may be set before initialization.

§attribute_value: unsafe extern "C" fn(plugin_data: *const PluginData, id: size_t, value: *mut Val, phase: Phase) -> c_int

Writes the value of an attribute to a Value instance that is provided by the caller.

§set_attribute_value: unsafe extern "C" fn(plugin_data: *mut PluginData, id: size_t, value: *const Val, phase: Phase) -> c_int

Sets the value of an attribute.

Trait Implementations§

Source§

impl Clone for VTable

Source§

fn clone(&self) -> VTable

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for VTable

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for VTable

§

impl RefUnwindSafe for VTable

§

impl Send for VTable

§

impl Sync for VTable

§

impl Unpin for VTable

§

impl UnwindSafe for VTable

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