Enum Callbacks

Source
#[repr(C)]
pub enum Callbacks<T, E: Error + PluginError> { Constant, Get(fn(plugin: &T, cached: &Value) -> Result<Value, E>), GetAndSet(fn(plugin: &T, cached: &Value) -> Result<Value, E>, fn(plugin: &T, cached: &Value, value: &Val) -> Result<(), E>), Update, }
Expand description

Callback functions that communicate with the hardware when an attribute is read or set.

The purpose of a callback is two-fold: it performs the actual communication with the hardware and/or it modifies the plugin’s cached attribute data.

If the attribute is constant and never changes its original value, then the Constant variant should be used. If the attribute’s value changes without user input (e.g. a sensor reading) but cannot be set, then use the Get variant. Otherwise, for attributes that can be both read and set, use the GetAndSet variant.

The Update variant is used to set only the cached value of attributes. Attributes that are Update always return their cached value when the attribute’s value is read.

Variants§

§

Constant

§

Get(fn(plugin: &T, cached: &Value) -> Result<Value, E>)

§

GetAndSet(fn(plugin: &T, cached: &Value) -> Result<Value, E>, fn(plugin: &T, cached: &Value, value: &Val) -> Result<(), E>)

§

Update

Trait Implementations§

Source§

impl<T, E: Error + PluginError> Debug for Callbacks<T, E>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<T, E> Freeze for Callbacks<T, E>

§

impl<T, E> RefUnwindSafe for Callbacks<T, E>

§

impl<T, E> Send for Callbacks<T, E>

§

impl<T, E> Sync for Callbacks<T, E>

§

impl<T, E> Unpin for Callbacks<T, E>

§

impl<T, E> UnwindSafe for Callbacks<T, E>

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.

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