[][src]Trait frunk_core::coproduct::CoproductSubsetter

pub trait CoproductSubsetter<Targets, Indices>: Sized {
    type Remainder;
    fn subset(self) -> Result<Targets, Self::Remainder>;
}

Trait for extracting a subset of the possible types in a coproduct.

This trait is part of the implementation of the inherent method Coproduct::subset. Please see that method for more information.

You only need to import this trait when working with generic Coproducts of unknown type. If you have a Coproduct of known type, then co.subset() should "just work" even without the trait.

Associated Types

Loading content...

Required methods

fn subset(self) -> Result<Targets, Self::Remainder>

Extract a subset of the possible types in a coproduct (or get the remaining possibilities)

Please see the inherent method for more information.

The only difference between that inherent method and this trait method is the location of the type parameters. (here, they are on the trait rather than the method)

Loading content...

Implementors

impl<Choices> CoproductSubsetter<CNil, HNil> for Choices[src]

type Remainder = Self

impl<Choices, THead, TTail, NHead, NTail, Rem> CoproductSubsetter<Coproduct<THead, TTail>, HCons<NHead, NTail>> for Choices where
    Self: CoprodUninjector<THead, NHead, Remainder = Rem>,
    Rem: CoproductSubsetter<TTail, NTail>, 
[src]

type Remainder = <Rem as CoproductSubsetter<TTail, NTail>>::Remainder

fn subset(self) -> Result<Coproduct<THead, TTail>, Self::Remainder>[src]

Attempt to extract a value from a subset of the types.

Loading content...