Struct attr::Path
[−]
[src]
pub struct Path<Input, Output, A: Attr<Input>, Rest> { /* fields omitted */ }
A plain path describing how to retrieve a value at a point, and then recursive down the rest of the path.
Paths are usually inferred and should not be directly used in user code.
Methods
impl<'a, 'b: 'a, X: 'b, Z: 'b, A: Attr<X>, R: Traverse<'a, 'b, A::Output, Z>> Path<X, Z, A, R> where
<A as Attr<X>>::Output: 'b,
[src]
<A as Attr<X>>::Output: 'b,
fn from<NX: 'b, NY: 'b, NZ: 'b, NA>(self, attr: NA) -> Path<NX, NZ, NA, Self> where
A: Attr<NY, Output = Z>,
NA: Attr<NX, Output = NY>,
A: Attr<NY, Output = Z>,
NA: Attr<NX, Output = NY>,
Extends a path by another segment.
This needs a retrieval that always succeds
fn try<NX: 'a, NY: 'a, NZ: 'a, NA>(
self,
attr: NA
) -> InsecurePath<NX, NZ, NA, Self> where
A: Attr<NY, Output = Z>,
NA: InsecureAttr<NX, Output = NY>,
self,
attr: NA
) -> InsecurePath<NX, NZ, NA, Self> where
A: Attr<NY, Output = Z>,
NA: InsecureAttr<NX, Output = NY>,
Extends a path by another segment.
This assumes that the retrieval cannot always succeed.
fn mapped<NX: 'b, NY: 'b, NZ: 'b, NA>(self, attr: NA) -> MapPath<NA, Self> where
A: Attr<X>,
R: Traverse<'a, 'b, A::Output, Z>,
NA: IterableAttr<'a, NX, Item = NY>,
Self: Traverse<'a, 'b, NY, NZ>,
A: Attr<X>,
R: Traverse<'a, 'b, A::Output, Z>,
NA: IterableAttr<'a, NX, Item = NY>,
Self: Traverse<'a, 'b, NY, NZ>,
Extends a path by an iteration operation.
This assumes that the iteration is always possible
Trait Implementations
impl<'a, 'b: 'a, X: 'b, Z: 'b, A: Attr<X>, R: Traverse<'a, 'b, A::Output, Z>> Traverse<'a, 'b, X, Z> for Path<X, Z, A, R> where
<A as Attr<X>>::Output: 'b,
[src]
<A as Attr<X>>::Output: 'b,