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

Returns a reference to the register at the provided index

Register indexes should start at 0 and not contain any gaps.

Returns a mutable reference to the register at the provided index

Register indexes should start at 0 and not contain any gaps.

Returns a mutable reference to the register with the provided name

Implementors