[][src]Struct reffers::aref::ARefs

#[repr(C)]
pub struct ARefs<'a, U: ?Sized>(_);

ARefs is a version of ARef that implements Send.

It works just like ARef, except that its owner must implement Send, and thus the struct implements Send as well.

Methods

impl<'a, U: ?Sized> ARefs<'a, U>[src]

pub fn new<O>(owner: O) -> Self where
    O: 'a + AReffic + Send + Deref<Target = U>, 
[src]

Creates a new ARefs from what the ARefs points to.

Example

use reffers::ARefs;

let aref = ARefs::new(Box::new(43));
assert_eq!(*aref, 43);

pub fn map<V: ?Sized, F: FnOnce(&U) -> &V>(self, f: F) -> ARefs<'a, V>[src]

Maps the ARefs' target to something reachable from the target.

Example

use reffers::ARefs;

let aref: ARefs<[u8]> = vec![0u8, 5, 7].into();
assert_eq!(*aref.map(|s| &s[1]), 5);

pub fn try_map<E, V: ?Sized, F: FnOnce(&U) -> Result<&V, E>>(
    self,
    f: F
) -> Result<ARefs<'a, V>, E>
[src]

Like map, but with Result passthrough.

Example

use reffers::ARefs;

let aref = ARefs::<[u8]>::from(vec![0u8, 5, 7]);
assert_eq!(aref.try_map(|s| s.get(9).ok_or(())), Err(()));

pub fn into_aref(self) -> ARef<'a, U>[src]

Removes the type information that this struct is Send + Sync.

Trait Implementations

impl<'a, U: ?Sized> Send for ARefs<'a, U>[src]

impl<'a, U: ?Sized> AsRef<U> for ARefs<'a, U>[src]

impl<'a, O: 'a + AReffic + Send + Deref<Target = U>, U: ?Sized> From<O> for ARefs<'a, U>[src]

impl<'a, U: ?Sized + Eq> Eq for ARefs<'a, U>[src]

impl<'a, U: ?Sized + Ord> Ord for ARefs<'a, U>[src]

impl<'a, U: ?Sized + PartialEq> PartialEq<ARefs<'a, U>> for ARefs<'a, U>[src]

impl<'a, U: ?Sized + PartialOrd> PartialOrd<ARefs<'a, U>> for ARefs<'a, U>[src]

impl<'a, U: Debug + ?Sized> Debug for ARefs<'a, U>[src]

impl<'a, U: ?Sized> Deref for ARefs<'a, U>[src]

type Target = U

The resulting type after dereferencing.

impl<'a, U: ?Sized + Hash> Hash for ARefs<'a, U>[src]

impl<'a, U: ?Sized> Borrow<U> for ARefs<'a, U>[src]

Auto Trait Implementations

impl<'a, U> !Sync for ARefs<'a, U>

impl<'a, U: ?Sized> Unpin for ARefs<'a, U>

impl<'a, U: ?Sized> UnwindSafe for ARefs<'a, U> where
    U: RefUnwindSafe

impl<'a, U> !RefUnwindSafe for ARefs<'a, U>

Blanket Implementations

impl<T> Repr for T[src]

type Store = T

impl<T> Repr for T[src]

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

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

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.

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

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

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