Trait Register

Source
pub trait Register {
    type Ty;

    const ADDRESS: usize;
    const LENGTH: usize;
    const ACCESS_RIGHT: AccessRight;

    // Required methods
    fn parse(data: &[u8]) -> MemoryResult<Self::Ty>;
    fn serialize(data: Self::Ty) -> MemoryResult<Vec<u8>>;

    // Provided methods
    fn write(data: Self::Ty, memory: &mut [u8]) -> MemoryResult<()> { ... }
    fn read(memory: &[u8]) -> MemoryResult<Self::Ty> { ... }
    fn range() -> Range<usize> { ... }
}

Required Associated Constants§

Required Associated Types§

Required Methods§

Source

fn parse(data: &[u8]) -> MemoryResult<Self::Ty>

Source

fn serialize(data: Self::Ty) -> MemoryResult<Vec<u8>>

Provided Methods§

Source

fn write(data: Self::Ty, memory: &mut [u8]) -> MemoryResult<()>

Source

fn read(memory: &[u8]) -> MemoryResult<Self::Ty>

Source

fn range() -> Range<usize>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§