Skip to main content

Callbacks

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>
where fn(&T, &Value) -> Result<Value, E>: Freeze, fn(&T, &Value, &Val) -> Result<(), E>: Freeze,

§

impl<T, E> RefUnwindSafe for Callbacks<T, E>
where fn(&T, &Value) -> Result<Value, E>: RefUnwindSafe, fn(&T, &Value, &Val) -> Result<(), E>: RefUnwindSafe,

§

impl<T, E> Send for Callbacks<T, E>
where fn(&T, &Value) -> Result<Value, E>: Send, fn(&T, &Value, &Val) -> Result<(), E>: Send,

§

impl<T, E> Sync for Callbacks<T, E>
where fn(&T, &Value) -> Result<Value, E>: Sync, fn(&T, &Value, &Val) -> Result<(), E>: Sync,

§

impl<T, E> Unpin for Callbacks<T, E>
where fn(&T, &Value) -> Result<Value, E>: Unpin, fn(&T, &Value, &Val) -> Result<(), E>: Unpin,

§

impl<T, E> UnsafeUnpin for Callbacks<T, E>
where fn(&T, &Value) -> Result<Value, E>: UnsafeUnpin, fn(&T, &Value, &Val) -> Result<(), E>: UnsafeUnpin,

§

impl<T, E> UnwindSafe for Callbacks<T, E>
where fn(&T, &Value) -> Result<Value, E>: UnwindSafe, fn(&T, &Value, &Val) -> Result<(), E>: UnwindSafe,

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

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.