[][src]Enum rusttype::SharedBytes

pub enum SharedBytes<'a> {
    ByRef(&'a [u8]),
    ByArc(Arc<[u8]>),
}

SharedBytes handles the lifetime of font data used in RustType. The data is either a shared reference to externally owned data, or managed by reference counting. SharedBytes can be conveniently used with From and Into, and dereferences to the contained bytes.

Lifetime

The lifetime reflects the font data lifetime. SharedBytes<'static> covers most cases ie both dynamically loaded owned data and for referenced compile time font data.

Variants

ByRef(&'a [u8])
ByArc(Arc<[u8]>)

Trait Implementations

impl<'a> Clone for SharedBytes<'a>[src]

impl<'a> Debug for SharedBytes<'a>[src]

impl<'a> Deref for SharedBytes<'a>[src]

type Target = [u8]

The resulting type after dereferencing.

impl<'a> From<&'a [u8]> for SharedBytes<'a>[src]

let bytes: &[u8] = &[0u8, 1, 2, 3];
let shared: SharedBytes = bytes.into();
assert_eq!(&*shared, bytes);

impl<'a, T: AsRef<[u8]>> From<&'a T> for SharedBytes<'a>[src]

let bytes = vec![0u8, 1, 2, 3];
let shared: SharedBytes = (&bytes).into();
assert_eq!(&*shared, &bytes as &[u8]);

impl From<Arc<[u8]>> for SharedBytes<'static>[src]

let bytes: Arc<[u8]> = vec![0u8, 1, 2, 3].into();
let shared: SharedBytes = Arc::clone(&bytes).into();
assert_eq!(&*shared, &*bytes);

impl From<Box<[u8]>> for SharedBytes<'static>[src]

let bytes: Box<[u8]> = vec![0u8, 1, 2, 3].into();
let shared: SharedBytes = bytes.into();
assert_eq!(&*shared, &[0u8, 1, 2, 3]);

impl From<Vec<u8>> for SharedBytes<'static>[src]

let bytes = vec![0u8, 1, 2, 3];
let shared: SharedBytes = bytes.into();
assert_eq!(&*shared, &[0u8, 1, 2, 3]);

Auto Trait Implementations

impl<'a> RefUnwindSafe for SharedBytes<'a>

impl<'a> Send for SharedBytes<'a>

impl<'a> Sync for SharedBytes<'a>

impl<'a> Unpin for SharedBytes<'a>

impl<'a> UnwindSafe for SharedBytes<'a>

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.