pub struct Vec;
Expand description
std::vec::Vec
lifted to an HKT1
(Kind Type -> Type
)
Trait Implementations§
source§impl<A> Applicative<Vec, A> for Vec<A>
impl<A> Applicative<Vec, A> for Vec<A>
source§impl<AB> Apply<Vec, AB> for Vec<AB>
impl<AB> Apply<Vec, AB> for Vec<AB>
source§impl<A> Foldable<Vec, A> for Vec<A>
impl<A> Foldable<Vec, A> for Vec<A>
source§fn foldl<B, BAB>(self, f: BAB, b: B) -> Bwhere
BAB: F2<B, A, Ret = B>,
fn foldl<B, BAB>(self, f: BAB, b: B) -> Bwhere BAB: F2<B, A, Ret = B>,
Fold the data structure from left -> right
source§fn foldr<B, ABB>(self, f: ABB, b: B) -> Bwhere
ABB: F2<A, B, Ret = B>,
fn foldr<B, ABB>(self, f: ABB, b: B) -> Bwhere ABB: F2<A, B, Ret = B>,
Fold the data structure from right -> left
source§fn foldl_ref<'a, B, BAB>(&'a self, f: BAB, b: B) -> Bwhere
BAB: F2<B, &'a A, Ret = B>,
A: 'a,
fn foldl_ref<'a, B, BAB>(&'a self, f: BAB, b: B) -> Bwhere BAB: F2<B, &'a A, Ret = B>, A: 'a,
Fold the data structure from left -> right
source§fn foldr_ref<'a, B, ABB>(&'a self, f: ABB, b: B) -> Bwhere
ABB: F2<&'a A, B, Ret = B>,
A: 'a,
fn foldr_ref<'a, B, ABB>(&'a self, f: ABB, b: B) -> Bwhere ABB: F2<&'a A, B, Ret = B>, A: 'a,
Fold the data structure from right -> left
source§fn contains<'a>(&'a self, a: &'a A) -> boolwhere
&'a A: PartialEq,
A: 'a,
fn contains<'a>(&'a self, a: &'a A) -> boolwhere &'a A: PartialEq, A: 'a,
Test if the structure contains a value
a
Read moresource§fn not_contains<'a>(&'a self, a: &'a A) -> boolwhere
&'a A: PartialEq,
A: 'a,
fn not_contains<'a>(&'a self, a: &'a A) -> boolwhere &'a A: PartialEq, A: 'a,
Test if the structure does not contain a value
a
Read moresource§fn any<'a, P>(&'a self, f: P) -> boolwhere
P: F1<&'a A, Ret = bool>,
A: 'a,
fn any<'a, P>(&'a self, f: P) -> boolwhere P: F1<&'a A, Ret = bool>, A: 'a,
Test if any element in the structure satisfies a predicate
f
Read moresource§fn all<'a, P>(&'a self, f: P) -> boolwhere
P: F1<&'a A, Ret = bool>,
A: 'a,
fn all<'a, P>(&'a self, f: P) -> boolwhere P: F1<&'a A, Ret = bool>, A: 'a,
Test if every element in the structure satisfies a predicate
f
Read moresource§impl<A> FoldableIndexed<Vec, usize, A> for Vec<A>
impl<A> FoldableIndexed<Vec, usize, A> for Vec<A>
source§fn foldr_idx<B, ABB>(self, f: ABB, b: B) -> Bwhere
ABB: F3<usize, A, B, Ret = B>,
fn foldr_idx<B, ABB>(self, f: ABB, b: B) -> Bwhere ABB: F3<usize, A, B, Ret = B>,
CHECK: Enumerate yields indexes (not the number of iterations) when going backwards in a double ended iterator
use naan::prelude::*;
vec![0, 1, 2].foldl_idx(|(), ix, val| assert_eq!(ix, val), ());
vec![0, 1, 2].foldr_idx(|ix, val, ()| assert_eq!(ix, val), ());
source§fn foldl_idx<B, BAB>(self, f: BAB, b: B) -> Bwhere
BAB: F3<B, usize, A, Ret = B>,
fn foldl_idx<B, BAB>(self, f: BAB, b: B) -> Bwhere BAB: F3<B, usize, A, Ret = B>,
Fold the data structure from left -> right
source§impl<A, B> Traversable<Vec, A, B, Curry2<fn(_: B, _: Vec<B, Global>) -> Vec<B, Global>, Just<B>, Nothing<Vec<B, Global>>, Vec<B, Global>>> for Vec<A>
impl<A, B> Traversable<Vec, A, B, Curry2<fn(_: B, _: Vec<B, Global>) -> Vec<B, Global>, Just<B>, Nothing<Vec<B, Global>>, Vec<B, Global>>> for Vec<A>
source§fn traversem1<Ap, AtoApOfB>(self, f: AtoApOfB) -> Ap::T<Vec<B>>where
Ap: HKT1,
Self: Foldable<Vec, A>,
Ap::T<B>: Applicative<Ap, B> + ApplyOnce<Ap, B>,
Ap::T<append1<B>>: Applicative<Ap, append1<B>> + ApplyOnce<Ap, append1<B>>,
Ap::T<Vec<B>>: Applicative<Ap, Vec<B>> + ApplyOnce<Ap, Vec<B>>,
AtoApOfB: F1<A, Ret = Ap::T<B>>,
Vec: HKT1<T<A> = Self>,
fn traversem1<Ap, AtoApOfB>(self, f: AtoApOfB) -> Ap::T<Vec<B>>where Ap: HKT1, Self: Foldable<Vec, A>, Ap::T<B>: Applicative<Ap, B> + ApplyOnce<Ap, B>, Ap::T<append1<B>>: Applicative<Ap, append1<B>> + ApplyOnce<Ap, append1<B>>, Ap::T<Vec<B>>: Applicative<Ap, Vec<B>> + ApplyOnce<Ap, Vec<B>>, AtoApOfB: F1<A, Ret = Ap::T<B>>, Vec: HKT1<T<A> = Self>,
Traverse a structure with 0 or more elements, collecting into
an Applicative of 0 or 1 elements. Read more
source§fn traversemm<Ap, AtoApOfB>(self, f: AtoApOfB) -> Ap::T<Vec<B>>where
Ap: HKT1,
Self: Foldable<Vec, A>,
B: Clone,
Ap::T<B>: Applicative<Ap, B>,
Ap::T<append1<B>>: Applicative<Ap, append1<B>>,
Ap::T<Vec<B>>: Applicative<Ap, Vec<B>>,
AtoApOfB: F1<A, Ret = Ap::T<B>>,
Vec: HKT1<T<A> = Self>,
fn traversemm<Ap, AtoApOfB>(self, f: AtoApOfB) -> Ap::T<Vec<B>>where Ap: HKT1, Self: Foldable<Vec, A>, B: Clone, Ap::T<B>: Applicative<Ap, B>, Ap::T<append1<B>>: Applicative<Ap, append1<B>>, Ap::T<Vec<B>>: Applicative<Ap, Vec<B>>, AtoApOfB: F1<A, Ret = Ap::T<B>>, Vec: HKT1<T<A> = Self>,
Traverse a structure with 0 or more elements, collecting into
an Applicative of 0 or more elements.
source§fn traverse<Ap, AtoApOfB>(self, f: AtoApOfB) -> Ap::T<F::T<B>>where
Ap: HKT1,
Self: Sized + Foldable<F, A>,
Ap::T<B>: Applicative<Ap, B> + ApplyOnce<Ap, B>,
Ap::T<TF>: Applicative<Ap, TF> + ApplyOnce<Ap, TF>,
Ap::T<F::T<B>>: Applicative<Ap, F::T<B>> + ApplyOnce<Ap, F::T<B>>,
AtoApOfB: F1<A, Ret = Ap::T<B>>,
F: HKT1<T<A> = Self>,
fn traverse<Ap, AtoApOfB>(self, f: AtoApOfB) -> Ap::T<F::T<B>>where Ap: HKT1, Self: Sized + Foldable<F, A>, Ap::T<B>: Applicative<Ap, B> + ApplyOnce<Ap, B>, Ap::T<TF>: Applicative<Ap, TF> + ApplyOnce<Ap, TF>, Ap::T<F::T<B>>: Applicative<Ap, F::T<B>> + ApplyOnce<Ap, F::T<B>>, AtoApOfB: F1<A, Ret = Ap::T<B>>, F: HKT1<T<A> = Self>,
Aliases
Traversable::traversem1
Auto Trait Implementations§
impl RefUnwindSafe for Vec
impl Send for Vec
impl Sync for Vec
impl Unpin for Vec
impl UnwindSafe for Vec
Blanket Implementations§
source§impl<F, A, TF, T> Sequence<F, A, TF> for T
impl<F, A, TF, T> Sequence<F, A, TF> for T
source§fn sequence<Ap>(self) -> Ap::T<F::T<A>>where
Self: Sized + Traversable<F, Ap::T<A>, A, TF> + Foldable<F, Ap::T<A>>,
Ap: HKT1,
Ap::T<A>: Applicative<Ap, A> + ApplyOnce<Ap, A>,
Ap::T<TF>: Applicative<Ap, TF> + ApplyOnce<Ap, TF>,
Ap::T<F::T<A>>: Applicative<Ap, F::T<A>> + ApplyOnce<Ap, F::T<A>>,
F: HKT1<T<Ap::T<A>> = Self>,
fn sequence<Ap>(self) -> Ap::T<F::T<A>>where Self: Sized + Traversable<F, Ap::T<A>, A, TF> + Foldable<F, Ap::T<A>>, Ap: HKT1, Ap::T<A>: Applicative<Ap, A> + ApplyOnce<Ap, A>, Ap::T<TF>: Applicative<Ap, TF> + ApplyOnce<Ap, TF>, Ap::T<F::T<A>>: Applicative<Ap, F::T<A>> + ApplyOnce<Ap, F::T<A>>, F: HKT1<T<Ap::T<A>> = Self>,
See
Sequence