Trait canadensis::register::RegisterBlock
source · [−]pub trait RegisterBlock {
fn register_by_index(&self, index: usize) -> Option<&dyn Register>;
fn register_by_index_mut(
&mut self,
index: usize
) -> Option<&mut dyn Register>;
fn register_by_name_mut(&mut self, name: &str) -> Option<&mut dyn Register>;
}
Expand description
A block of registers that can be accessed externally through the uavcan.register interface
This trait can be derived for any struct whose fields all implement Register
.
Examples
#[derive(RegisterBlock)]
struct Registers {
node_id: SimpleRegister<u16>,
description: SimpleRegister<RegisterString>,
}
impl Default for Registers {
fn default() -> Self {
Registers {
node_id: SimpleRegister::with_value("uavcan.node.id", true, true, 65535),
description: SimpleRegister::new("uavcan.node.description", true, true),
}
}
}
Required methods
fn register_by_index(&self, index: usize) -> Option<&dyn Register>
fn register_by_index(&self, index: usize) -> Option<&dyn Register>
Returns a reference to the register at the provided index
Register indexes should start at 0 and not contain any gaps.
fn register_by_index_mut(&mut self, index: usize) -> Option<&mut dyn Register>
fn register_by_index_mut(&mut self, index: usize) -> Option<&mut dyn Register>
Returns a mutable reference to the register at the provided index
Register indexes should start at 0 and not contain any gaps.
fn register_by_name_mut(&mut self, name: &str) -> Option<&mut dyn Register>
fn register_by_name_mut(&mut self, name: &str) -> Option<&mut dyn Register>
Returns a mutable reference to the register with the provided name