[][src]Struct kpal_plugin::VTable

#[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,
}

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

impl Clone for VTable[src]

impl Debug for VTable[src]

Auto Trait Implementations

impl RefUnwindSafe for VTable

impl Send for VTable

impl Sync for VTable

impl Unpin for VTable

impl UnwindSafe for VTable

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.