#[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§
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more