Trait mona::Transpose[][src]

pub trait Transpose {
    type Output;
    fn transpose(self) -> Self::Output;
}
Expand description

Transposition of nested container types.

Associated Types

Required methods

fn transpose(self) -> Self::Output[src]

Implementations on Foreign Types

impl<T> Transpose for Vec<Vec<T>>[src]

type Output = Option<Vec<Vec<T>>>

fn transpose(self) -> Self::Output[src]

impl<T, E, F> Transpose for Result<Result<T, E>, F>[src]

type Output = Result<Result<T, F>, E>

fn transpose(self) -> Self::Output[src]

impl<T> Transpose for Option<Option<T>>[src]

type Output = Option<Option<T>>

fn transpose(self) -> Self::Output[src]

impl<T, const X: usize, const Y: usize> Transpose for [[T; X]; Y][src]

type Output = [[T; Y]; X]

fn transpose(self) -> Self::Output[src]

impl<T, E> Transpose for Vec<Result<T, E>>[src]

type Output = Result<Vec<T>, E>

fn transpose(self) -> Self::Output[src]

impl<T, E> Transpose for Result<Vec<T>, E>[src]

type Output = Vec<Result<T, E>>

fn transpose(self) -> Self::Output[src]

impl<T> Transpose for Vec<Option<T>>[src]

type Output = Option<Vec<T>>

fn transpose(self) -> Self::Output[src]

impl<T> Transpose for Option<Vec<T>>[src]

type Output = Vec<Option<T>>

fn transpose(self) -> Self::Output[src]

impl<K, L, V> Transpose for HashMap<K, HashMap<L, V>> where
    K: Eq + Hash + Clone,
    L: Eq + Hash
[src]

type Output = HashMap<L, HashMap<K, V>>

fn transpose(self) -> Self::Output[src]

impl<K, V> Transpose for HashMap<K, Vec<V>> where
    K: Eq + Hash + Clone
[src]

type Output = Vec<HashMap<K, V>>

fn transpose(self) -> Self::Output[src]

impl<K, V> Transpose for Vec<HashMap<K, V>> where
    K: Eq + Hash + Clone
[src]

type Output = Option<HashMap<K, Vec<V>>>

fn transpose(self) -> Self::Output[src]

Implementors