Struct refraction::conv::ConvRef [] [src]

pub struct ConvRef<'a, S: ?Sized + 'a, A: ?Sized + 'a = S, T: ?Sized + 'a = S, B: ?Sized + 'a = T> { /* fields omitted */ }

An isomorphism family that handles lossless conversions by shared reference.

Methods

impl<'a, S: ?Sized, A: ?Sized, T: ?Sized, B: ?Sized> ConvRef<'a, S, A, T, B> where
    S: AsRef<A> + 'a,
    A: AsRef<S> + 'a,
    T: AsRef<B> + 'a,
    B: AsRef<T> + 'a, 
[src]

Trait Implementations

impl<'a, S: ?Sized, A: ?Sized, T: ?Sized, B: ?Sized> Debug for ConvRef<'a, S, A, T, B> where
    S: AsRef<A> + 'a,
    A: AsRef<S> + 'a,
    T: AsRef<B> + 'a,
    B: AsRef<T> + 'a, 
[src]

Formats the value using the given formatter.

impl<'a, S: ?Sized, A: ?Sized, T: ?Sized, B: ?Sized> Clone for ConvRef<'a, S, A, T, B> where
    S: AsRef<A> + 'a,
    A: AsRef<S> + 'a,
    T: AsRef<B> + 'a,
    B: AsRef<T> + 'a, 
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl<'a, S: ?Sized, A: ?Sized, T: ?Sized, B: ?Sized> Copy for ConvRef<'a, S, A, T, B> where
    S: AsRef<A> + 'a,
    A: AsRef<S> + 'a,
    T: AsRef<B> + 'a,
    B: AsRef<T> + 'a, 
[src]

impl<'a, S: ?Sized, A: ?Sized, T: ?Sized, B: ?Sized> Default for ConvRef<'a, S, A, T, B> where
    S: AsRef<A> + 'a,
    A: AsRef<S> + 'a,
    T: AsRef<B> + 'a,
    B: AsRef<T> + 'a, 
[src]

Returns the "default value" for a type. Read more

impl<'a, S: ?Sized, A: ?Sized, T: ?Sized, B: ?Sized> Lenticuloid for ConvRef<'a, S, A, T, B> where
    S: AsRef<A> + 'a,
    A: AsRef<S> + 'a,
    T: AsRef<B> + 'a,
    B: AsRef<T> + 'a, 
[src]

impl<'a, S: ?Sized, A: ?Sized, T: ?Sized, B: ?Sized> PartialLens for ConvRef<'a, S, A, T, B> where
    S: AsRef<A> + 'a,
    A: AsRef<S> + 'a,
    T: AsRef<B> + 'a,
    B: AsRef<T> + 'a, 
[src]

This signature is somewhat hacky; it awaits resolution of the FnBox issue for better design. Notably, the injection function returned by this method will (if law-abiding) only return Some exactly once; every time afterwards, it will return None. Read more

impl<'a, S: ?Sized, A: ?Sized, T: ?Sized, B: ?Sized> Lens for ConvRef<'a, S, A, T, B> where
    S: AsRef<A> + 'a,
    A: AsRef<S> + 'a,
    T: AsRef<B> + 'a,
    B: AsRef<T> + 'a, 
[src]

impl<'a, S: ?Sized, A: ?Sized, T: ?Sized, B: ?Sized> Prism for ConvRef<'a, S, A, T, B> where
    S: AsRef<A> + 'a,
    A: AsRef<S> + 'a,
    T: AsRef<B> + 'a,
    B: AsRef<T> + 'a, 
[src]

impl<'a, S: ?Sized, A: ?Sized, T: ?Sized, B: ?Sized> Iso for ConvRef<'a, S, A, T, B> where
    S: AsRef<A> + 'a,
    A: AsRef<S> + 'a,
    T: AsRef<B> + 'a,
    B: AsRef<T> + 'a, 
[src]