riot_wrappers::bluetil

Struct Ad

source
pub struct Ad<B: AsRef<[u8]>>(B);
Available on riot_module_bluetil_ad only.
Expand description

Wrapper around bluetil_ad (BLE Advertising Data)

This is implemented as a possibly owned buffer, as that should make usage straightforward both for read-only data (not practically usable yet) and for writing; it remains to be seen whether that’s viable.

Tuple Fields§

§0: B

Implementations§

source§

impl<B: AsRef<[u8]>> Ad<B>

source

pub fn destroy(self) -> B

Reclaim the buffer that the AD was built around.

This is particularly useful when an AD object was populated, and in the end the buffer needs to be obtained in order to send it.

source§

impl<const L: usize> Ad<Vec<u8, L>>

source

pub fn new() -> Self

Create an empty AD object around owned memory; the size is given by the type parameter.

source

fn build(&self) -> bluetil_ad_t

Construct a bluetil_ad_t that represent the current vec state

This is not unsafe in itself, but usually used with functions that are, and when they write into the buffer, it needs the unsafe heapless::Vec::set_len to propagate that write.

source

pub fn add_flags(&mut self, flags: u32) -> Result<(), Error>

Add a “flags” field with the given flag value to the AD (convenience function)

source

pub fn add(&mut self, type_: u32, data: &[u8]) -> Result<(), Error>

Add an arbitrary typed field to the AD

source§

impl Ad<Vec<u8, 31>>

source

pub fn new_maximal() -> Self

Create an empty AD object around owned memory with the maximum sendable size.

This is often more convenient than new as it’s not too large anyway (31 bytes).

Auto Trait Implementations§

§

impl<B> Freeze for Ad<B>
where B: Freeze,

§

impl<B> RefUnwindSafe for Ad<B>
where B: RefUnwindSafe,

§

impl<B> Send for Ad<B>
where B: Send,

§

impl<B> Sync for Ad<B>
where B: Sync,

§

impl<B> Unpin for Ad<B>
where B: Unpin,

§

impl<B> UnwindSafe for Ad<B>
where B: UnwindSafe,

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> 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> IntoSwitch for T

source§

fn into_switch<ActiveLevel>(self) -> Switch<T, ActiveLevel>

Consumes the IoPin returning a Switch of the appropriate ActiveLevel. Read more
source§

fn into_active_low_switch(self) -> Switch<Self, ActiveLow>
where Self: Sized,

Consumes the IoPin returning a Switch<IoPin, ActiveLow>. Read more
source§

fn into_active_high_switch(self) -> Switch<Self, ActiveHigh>
where Self: Sized,

Consumes the IoPin returning a Switch<IoPin, ActiveHigh>. Read more
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.

Layout§

Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.