[][src]Struct btle::bytes::StaticBuf

pub struct StaticBuf<ArrayBuf: AsRef<[u8]> + AsMut<[u8]> + Default + Copy> { /* fields omitted */ }

Static byte buffer. StaticBuf<[u8; 16]> can store a [u8] array from 0-16 bytes for example. Unlike other static buffers, this does NOT reallocate if you out grow the internal buffer. If you try to request more bytes than its able to store, it will panic.

Methods

impl<ArrayBuf: AsRef<[u8]> + AsMut<[u8]> + Default + Copy> StaticBuf<ArrayBuf>[src]

pub fn max_size() -> usize[src]

Returns the maximum size the StaticBuf can hold.

Examples

use btle::bytes::StaticBuf;
assert_eq!(StaticBuf::<[u8; 10]>::max_size(), 10);
assert_eq!(StaticBuf::<[u8; 23]>::max_size(), 23);

pub fn resize(&mut self, new_size: usize)[src]

Resizes the StaticBuf by settings self.len to new_size if new_size <= Self::max_size(). This is only a single variable change and WILL NOT zero or change any of the buffers bytes.

Examples

use btle::bytes::{StaticBuf, Storage};
let mut buf = StaticBuf::<[u8; 10]>::with_size(10);
assert_eq!(buf.len(), 10);
assert_eq!(buf[9], 0);
buf[9] = 0xFF;
buf.resize(1);
assert_eq!(buf.len(), 1);
buf.resize(10);
assert_eq!(buf[9], 0xFF);

Trait Implementations

impl<ArrayBuf: AsRef<[u8]> + AsMut<[u8]> + Default + Copy> AsMut<[u8]> for StaticBuf<ArrayBuf>[src]

impl<ArrayBuf: AsRef<[u8]> + AsMut<[u8]> + Default + Copy> AsRef<[u8]> for StaticBuf<ArrayBuf>[src]

impl<ArrayBuf: Clone + AsRef<[u8]> + AsMut<[u8]> + Default + Copy> Clone for StaticBuf<ArrayBuf>[src]

impl<ArrayBuf: Copy + AsRef<[u8]> + AsMut<[u8]> + Default> Copy for StaticBuf<ArrayBuf>[src]

impl<ArrayBuf: Default + AsRef<[u8]> + AsMut<[u8]> + Copy> Default for StaticBuf<ArrayBuf>[src]

impl<ArrayBuf: AsRef<[u8]> + AsMut<[u8]> + Default + Copy> Index<RangeFull> for StaticBuf<ArrayBuf>[src]

type Output = [u8]

The returned type after indexing.

impl<ArrayBuf: AsRef<[u8]> + AsMut<[u8]> + Default + Copy> Index<usize> for StaticBuf<ArrayBuf>[src]

type Output = u8

The returned type after indexing.

impl<ArrayBuf: AsRef<[u8]> + AsMut<[u8]> + Default + Copy> IndexMut<RangeFull> for StaticBuf<ArrayBuf>[src]

impl<ArrayBuf: AsRef<[u8]> + AsMut<[u8]> + Default + Copy> IndexMut<usize> for StaticBuf<ArrayBuf>[src]

impl<ArrayBuf: AsRef<[u8]> + AsMut<[u8]> + Default + Copy> Storage for StaticBuf<ArrayBuf>[src]

Auto Trait Implementations

impl<ArrayBuf> RefUnwindSafe for StaticBuf<ArrayBuf> where
    ArrayBuf: RefUnwindSafe

impl<ArrayBuf> Send for StaticBuf<ArrayBuf> where
    ArrayBuf: Send

impl<ArrayBuf> Sync for StaticBuf<ArrayBuf> where
    ArrayBuf: Sync

impl<ArrayBuf> Unpin for StaticBuf<ArrayBuf> where
    ArrayBuf: Unpin

impl<ArrayBuf> UnwindSafe for StaticBuf<ArrayBuf> where
    ArrayBuf: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.