trouble-host

Crates

git

Versions

default

Flavors

ClientAttTable

Struct ClientAttTable 

Source
pub struct ClientAttTable { /* private fields */ }
Expand description

A compact, fixed-size map of client-specific attribute values (e.g. CCCDs).

Entries are stored in a flat byte buffer with a sorted index for binary-search lookups. CLIENT_ATT_TABLE_SIZE determines the total storage available for both the index and values.

Implementations§

Source§

impl ClientAttTable

Source

pub const fn builder() -> ClientAttTableBuilder

Creates a new ClientAttTableBuilder for constructing a ClientAttTable.

Source

pub const fn view(&self) -> ClientAttTableView<'_>

Get a read-only view of the table

Source

pub fn get(&self, key: u16) -> Option<&[u8]>

Returns a reference to the value associated with the given attribute handle, or None if not found.

Source

pub fn write( &mut self, key: u16, offset: usize, data: &[u8], ) -> Result<(), AttErrorCode>

Writes data to key starting at offset.

Source

pub fn set_values(&mut self, src: &ClientAttTableView<'_>)

Copies values from src into this map for all matching keys.

Keys present in this map but not in src are zeroed. If value sizes differ, only the smaller length is copied and the remainder is zeroed.

Source

pub fn clear(&mut self)

Zeros all values in the map, leaving the index structure intact.

Source

pub fn raw(&self) -> &[u8]

Returns the raw byte representation of the map, suitable for serialization or storage.

Trait Implementations§

Source§

impl Clone for ClientAttTable

Source§

fn clone(&self) -> ClientAttTable

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ClientAttTable

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Format for ClientAttTable
where [u8; 64]: Format,

Source§

fn format(&self, f: Formatter<'_>)

Writes the defmt representation of self to fmt.

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V