Struct NestedFieldPath

Source
#[repr(transparent)]
pub struct NestedFieldPath<T> { pub list: T, }
Expand description

A type-level representation of a chain of field accesses,like .a.b.c.d.

This is the type that fp!(a.b) and fp!(::Foo.bar.baz) construct.
Note: fp!(::Foo.bar) constructs a VariantField.

§Construction

You can construct this using (not an exhaustive list):

  • fp macro,when you access a nested field

  • The NestedFieldPath{list} struct literal

  • The one or many constructors.

  • The NEW associated constant,if T implements core_extensions::ConstDefault (reexported in structural::reexports::ConstDefault)

§Examples

You can look for examples of using this in the single-field StructuralExt methods, like field_ and field_mut.

Fields§

§list: T

The list of fields this traverses to access a nested field.

Implementations§

Source§

impl<T> NestedFieldPath<T>
where T: ConstDefault,

Source

pub const NEW: Self = Self::DEFAULT

Constructs a NestedFieldPath<T>

Source§

impl<T> NestedFieldPath<(T,)>

Source

pub const fn one(value: T) -> Self

Construcst a NestedFieldPath from a single path component.

Source§

impl<T> NestedFieldPath<T>

Source

pub const fn many(list: T) -> Self

Constructs a NestedFieldPath for a nested field.

Example: NestedFieldPath::many(( ts!(a), ts!(b) )) is equivalent to fp!(a.b)

Example: NestedFieldPath::many(( VariantField::new(ts!(A), ts!(b)), ts!(c) )) is equivalent to fp!(::A.b.c)

Source§

impl<T> NestedFieldPath<T>

Source

pub fn push<U, V>(self, _other: U) -> NestedFieldPath<V>
where Self: PushBack<U, Output = NestedFieldPath<V>>, NestedFieldPath<V>: ConstDefault,

Constructs a new NestedFieldPath with _other appended at the end.

Example arguments:fp!(a)/fp!(::Foo.bar)/fp!(::Foo)

Source

pub fn append<U>( self, _other: NestedFieldPath<U>, ) -> NestedFieldPath<AppendOut<T, U>>

Constructs a new NestedFieldPath with _other appended at the end.

Example arguments:fp!(a,b)/fp!(::Foo.bar.baz)

Source

pub const fn into_set(self) -> FieldPathSet<(Self,), UniquePaths>

Converts this NestedFieldPath to a FieldPathSet.

§Example
use structural::{StructuralExt, fp};

let tup=(3,(5,8),(13,21));

assert_eq!( tup.fields(fp!(2.0).into_set()), (&13,) );
Source§

impl<C> NestedFieldPath<(C,)>

Source

pub fn into_component(self) -> C

Unwraps this non-nested field path into C.

This can also be done with path.list.0.

Trait Implementations§

Source§

impl<T, U> Append<NestedFieldPath<U>> for NestedFieldPath<T>
where T: Append<U>,

Source§

type Output = NestedFieldPath<<T as Append<U>>::Output>

The return value of this trait.
Source§

impl<T: Clone> Clone for NestedFieldPath<T>

Source§

fn clone(&self) -> NestedFieldPath<T>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<T> ConstDefault for NestedFieldPath<T>
where T: ConstDefault,

Source§

const DEFAULT: Self

The default value for Self.
Source§

impl<T> Debug for NestedFieldPath<T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<T: Default> Default for NestedFieldPath<T>

Source§

fn default() -> NestedFieldPath<T>

Returns the “default value” for a type. Read more
Source§

impl<T> IsMultiFieldPath for NestedFieldPath<T>

Source§

type PathUniqueness = UniquePaths

Whether the paths in the set can contain duplicate paths. Read more
Source§

impl<T> Ord for NestedFieldPath<T>

Source§

fn cmp(&self, _other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl<T> PartialEq for NestedFieldPath<T>

Source§

fn eq(&self, _other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T> PartialOrd for NestedFieldPath<T>

Source§

fn partial_cmp(&self, _other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl<T, U, P> PushBack<NestedFieldPath<P>> for FieldPathSet<T, U>

Source§

type Output = FieldPathSet<<T as PushBack<NestedFieldPath<P>>>::Output, AliasedPaths>

The return value of this trait.
Source§

impl<T, S> PushBack<S> for NestedFieldPath<T>
where T: PushBack<S>,

Source§

type Output = NestedFieldPath<<T as PushBack<S>>::Output>

The return value of this trait.
Source§

impl<This> RevFieldErr<This> for NestedFieldPath<()>
where This: ?Sized,

Source§

type Err = InfallibleAccess

The error returned by rev_* methods. Read more
Source§

impl<This, F0> RevFieldErr<This> for NestedFieldPath<(F0,)>
where This: ?Sized, F0: RevFieldErr<This>,

Source§

type Err = <F0 as RevFieldErr<This>>::Err

The error returned by rev_* methods. Read more
Source§

impl<F0, T0, E0, F1, T1, E1, F2, T2, E2, F3, T3, E3, F4, T4, E4, F5, T5, E5, F6, T6, E6, FL, TL, EL, This, CombErr> RevFieldErr<This> for NestedFieldPath<(F0, F1, F2, F3, F4, F5, F6, FL)>
where This: ?Sized, F0: RevFieldErr<This, Ty = T0, Err = E0>, E0: IsFieldErr, T0: ?Sized, F1: RevFieldErr<T0, Ty = T1, Err = E1>, E1: IsFieldErr, T1: ?Sized, F2: RevFieldErr<T1, Ty = T2, Err = E2>, E2: IsFieldErr, T2: ?Sized, F3: RevFieldErr<T2, Ty = T3, Err = E3>, E3: IsFieldErr, T3: ?Sized, F4: RevFieldErr<T3, Ty = T4, Err = E4>, E4: IsFieldErr, T4: ?Sized, F5: RevFieldErr<T4, Ty = T5, Err = E5>, E5: IsFieldErr, T5: ?Sized, F6: RevFieldErr<T5, Ty = T6, Err = E6>, E6: IsFieldErr, T6: ?Sized, FL: RevFieldErr<T6, Ty = TL, Err = EL>, EL: IsFieldErr, TL: ?Sized, (E0, E1, E2, E3, E4, E5, E6, EL): CombinedErrs<Combined = CombErr>, CombErr: IsFieldErr,

Source§

type Err = CombErr

The error returned by rev_* methods. Read more
Source§

impl<F0, T0, E0, F1, T1, E1, F2, T2, E2, F3, T3, E3, F4, T4, E4, F5, T5, E5, FL, TL, EL, This, CombErr> RevFieldErr<This> for NestedFieldPath<(F0, F1, F2, F3, F4, F5, FL)>
where This: ?Sized, F0: RevFieldErr<This, Ty = T0, Err = E0>, E0: IsFieldErr, T0: ?Sized, F1: RevFieldErr<T0, Ty = T1, Err = E1>, E1: IsFieldErr, T1: ?Sized, F2: RevFieldErr<T1, Ty = T2, Err = E2>, E2: IsFieldErr, T2: ?Sized, F3: RevFieldErr<T2, Ty = T3, Err = E3>, E3: IsFieldErr, T3: ?Sized, F4: RevFieldErr<T3, Ty = T4, Err = E4>, E4: IsFieldErr, T4: ?Sized, F5: RevFieldErr<T4, Ty = T5, Err = E5>, E5: IsFieldErr, T5: ?Sized, FL: RevFieldErr<T5, Ty = TL, Err = EL>, EL: IsFieldErr, TL: ?Sized, (E0, E1, E2, E3, E4, E5, EL): CombinedErrs<Combined = CombErr>, CombErr: IsFieldErr,

Source§

type Err = CombErr

The error returned by rev_* methods. Read more
Source§

impl<F0, T0, E0, F1, T1, E1, F2, T2, E2, F3, T3, E3, F4, T4, E4, FL, TL, EL, This, CombErr> RevFieldErr<This> for NestedFieldPath<(F0, F1, F2, F3, F4, FL)>
where This: ?Sized, F0: RevFieldErr<This, Ty = T0, Err = E0>, E0: IsFieldErr, T0: ?Sized, F1: RevFieldErr<T0, Ty = T1, Err = E1>, E1: IsFieldErr, T1: ?Sized, F2: RevFieldErr<T1, Ty = T2, Err = E2>, E2: IsFieldErr, T2: ?Sized, F3: RevFieldErr<T2, Ty = T3, Err = E3>, E3: IsFieldErr, T3: ?Sized, F4: RevFieldErr<T3, Ty = T4, Err = E4>, E4: IsFieldErr, T4: ?Sized, FL: RevFieldErr<T4, Ty = TL, Err = EL>, EL: IsFieldErr, TL: ?Sized, (E0, E1, E2, E3, E4, EL): CombinedErrs<Combined = CombErr>, CombErr: IsFieldErr,

Source§

type Err = CombErr

The error returned by rev_* methods. Read more
Source§

impl<F0, T0, E0, F1, T1, E1, F2, T2, E2, F3, T3, E3, FL, TL, EL, This, CombErr> RevFieldErr<This> for NestedFieldPath<(F0, F1, F2, F3, FL)>
where This: ?Sized, F0: RevFieldErr<This, Ty = T0, Err = E0>, E0: IsFieldErr, T0: ?Sized, F1: RevFieldErr<T0, Ty = T1, Err = E1>, E1: IsFieldErr, T1: ?Sized, F2: RevFieldErr<T1, Ty = T2, Err = E2>, E2: IsFieldErr, T2: ?Sized, F3: RevFieldErr<T2, Ty = T3, Err = E3>, E3: IsFieldErr, T3: ?Sized, FL: RevFieldErr<T3, Ty = TL, Err = EL>, EL: IsFieldErr, TL: ?Sized, (E0, E1, E2, E3, EL): CombinedErrs<Combined = CombErr>, CombErr: IsFieldErr,

Source§

type Err = CombErr

The error returned by rev_* methods. Read more
Source§

impl<F0, T0, E0, F1, T1, E1, F2, T2, E2, FL, TL, EL, This, CombErr> RevFieldErr<This> for NestedFieldPath<(F0, F1, F2, FL)>
where This: ?Sized, F0: RevFieldErr<This, Ty = T0, Err = E0>, E0: IsFieldErr, T0: ?Sized, F1: RevFieldErr<T0, Ty = T1, Err = E1>, E1: IsFieldErr, T1: ?Sized, F2: RevFieldErr<T1, Ty = T2, Err = E2>, E2: IsFieldErr, T2: ?Sized, FL: RevFieldErr<T2, Ty = TL, Err = EL>, EL: IsFieldErr, TL: ?Sized, (E0, E1, E2, EL): CombinedErrs<Combined = CombErr>, CombErr: IsFieldErr,

Source§

type Err = CombErr

The error returned by rev_* methods. Read more
Source§

impl<F0, T0, E0, F1, T1, E1, FL, TL, EL, This, CombErr> RevFieldErr<This> for NestedFieldPath<(F0, F1, FL)>
where This: ?Sized, F0: RevFieldErr<This, Ty = T0, Err = E0>, E0: IsFieldErr, T0: ?Sized, F1: RevFieldErr<T0, Ty = T1, Err = E1>, E1: IsFieldErr, T1: ?Sized, FL: RevFieldErr<T1, Ty = TL, Err = EL>, EL: IsFieldErr, TL: ?Sized, (E0, E1, EL): CombinedErrs<Combined = CombErr>, CombErr: IsFieldErr,

Source§

type Err = CombErr

The error returned by rev_* methods. Read more
Source§

impl<F0, T0, E0, FL, TL, EL, This, CombErr> RevFieldErr<This> for NestedFieldPath<(F0, FL)>
where This: ?Sized, F0: RevFieldErr<This, Ty = T0, Err = E0>, E0: IsFieldErr, T0: ?Sized, FL: RevFieldErr<T0, Ty = TL, Err = EL>, EL: IsFieldErr, TL: ?Sized, (E0, EL): CombinedErrs<Combined = CombErr>, CombErr: IsFieldErr,

Source§

type Err = CombErr

The error returned by rev_* methods. Read more
Source§

impl<This> RevFieldType<This> for NestedFieldPath<()>
where This: ?Sized,

Source§

type Ty = This

The type of the field.
Source§

impl<This, F0> RevFieldType<This> for NestedFieldPath<(F0,)>
where This: ?Sized, F0: RevFieldType<This>,

Source§

type Ty = <F0 as RevFieldType<This>>::Ty

The type of the field.
Source§

impl<F0, T0, F1, T1, F2, T2, F3, T3, F4, T4, F5, T5, F6, T6, FL, TL, This> RevFieldType<This> for NestedFieldPath<(F0, F1, F2, F3, F4, F5, F6, FL)>
where This: ?Sized, F0: RevFieldType<This, Ty = T0>, T0: ?Sized, F1: RevFieldType<T0, Ty = T1>, T1: ?Sized, F2: RevFieldType<T1, Ty = T2>, T2: ?Sized, F3: RevFieldType<T2, Ty = T3>, T3: ?Sized, F4: RevFieldType<T3, Ty = T4>, T4: ?Sized, F5: RevFieldType<T4, Ty = T5>, T5: ?Sized, F6: RevFieldType<T5, Ty = T6>, T6: ?Sized, FL: RevFieldType<T6, Ty = TL>, TL: ?Sized,

Source§

type Ty = TL

The type of the field.
Source§

impl<F0, T0, F1, T1, F2, T2, F3, T3, F4, T4, F5, T5, FL, TL, This> RevFieldType<This> for NestedFieldPath<(F0, F1, F2, F3, F4, F5, FL)>
where This: ?Sized, F0: RevFieldType<This, Ty = T0>, T0: ?Sized, F1: RevFieldType<T0, Ty = T1>, T1: ?Sized, F2: RevFieldType<T1, Ty = T2>, T2: ?Sized, F3: RevFieldType<T2, Ty = T3>, T3: ?Sized, F4: RevFieldType<T3, Ty = T4>, T4: ?Sized, F5: RevFieldType<T4, Ty = T5>, T5: ?Sized, FL: RevFieldType<T5, Ty = TL>, TL: ?Sized,

Source§

type Ty = TL

The type of the field.
Source§

impl<F0, T0, F1, T1, F2, T2, F3, T3, F4, T4, FL, TL, This> RevFieldType<This> for NestedFieldPath<(F0, F1, F2, F3, F4, FL)>
where This: ?Sized, F0: RevFieldType<This, Ty = T0>, T0: ?Sized, F1: RevFieldType<T0, Ty = T1>, T1: ?Sized, F2: RevFieldType<T1, Ty = T2>, T2: ?Sized, F3: RevFieldType<T2, Ty = T3>, T3: ?Sized, F4: RevFieldType<T3, Ty = T4>, T4: ?Sized, FL: RevFieldType<T4, Ty = TL>, TL: ?Sized,

Source§

type Ty = TL

The type of the field.
Source§

impl<F0, T0, F1, T1, F2, T2, F3, T3, FL, TL, This> RevFieldType<This> for NestedFieldPath<(F0, F1, F2, F3, FL)>
where This: ?Sized, F0: RevFieldType<This, Ty = T0>, T0: ?Sized, F1: RevFieldType<T0, Ty = T1>, T1: ?Sized, F2: RevFieldType<T1, Ty = T2>, T2: ?Sized, F3: RevFieldType<T2, Ty = T3>, T3: ?Sized, FL: RevFieldType<T3, Ty = TL>, TL: ?Sized,

Source§

type Ty = TL

The type of the field.
Source§

impl<F0, T0, F1, T1, F2, T2, FL, TL, This> RevFieldType<This> for NestedFieldPath<(F0, F1, F2, FL)>
where This: ?Sized, F0: RevFieldType<This, Ty = T0>, T0: ?Sized, F1: RevFieldType<T0, Ty = T1>, T1: ?Sized, F2: RevFieldType<T1, Ty = T2>, T2: ?Sized, FL: RevFieldType<T2, Ty = TL>, TL: ?Sized,

Source§

type Ty = TL

The type of the field.
Source§

impl<F0, T0, F1, T1, FL, TL, This> RevFieldType<This> for NestedFieldPath<(F0, F1, FL)>
where This: ?Sized, F0: RevFieldType<This, Ty = T0>, T0: ?Sized, F1: RevFieldType<T0, Ty = T1>, T1: ?Sized, FL: RevFieldType<T1, Ty = TL>, TL: ?Sized,

Source§

type Ty = TL

The type of the field.
Source§

impl<F0, T0, FL, TL, This> RevFieldType<This> for NestedFieldPath<(F0, FL)>
where This: ?Sized, F0: RevFieldType<This, Ty = T0>, T0: ?Sized, FL: RevFieldType<T0, Ty = TL>, TL: ?Sized,

Source§

type Ty = TL

The type of the field.
Source§

impl<'a, This> RevGetFieldImpl<'a, This> for NestedFieldPath<()>
where This: ?Sized + 'a,

Source§

fn rev_get_field(self, this: &'a This) -> Result<&'a Self::Ty, Self::Err>

Accesses the field that self represents inside of this,by reference.
Source§

impl<'a, This, F0> RevGetFieldImpl<'a, This> for NestedFieldPath<(F0,)>
where This: ?Sized + 'a, F0: RevGetFieldImpl<'a, This>,

Source§

fn rev_get_field(self, this: &'a This) -> Result<&'a F0::Ty, F0::Err>

Accesses the field that self represents inside of this,by reference.
Source§

impl<'a, F0, T0, F1, T1, F2, T2, F3, T3, F4, T4, F5, T5, F6, T6, FL, TL, This, CombErr> RevGetFieldImpl<'a, This> for NestedFieldPath<(F0, F1, F2, F3, F4, F5, F6, FL)>
where This: ?Sized + 'a, Self: RevFieldErr<This, Ty = TL, Err = CombErr>, CombErr: IsFieldErr, F0: RevGetFieldImpl<'a, This, Ty = T0>, T0: ?Sized + 'a, F0::Err: IntoFieldErr<CombErr>, F1: RevGetFieldImpl<'a, T0, Ty = T1>, T1: ?Sized + 'a, F1::Err: IntoFieldErr<CombErr>, F2: RevGetFieldImpl<'a, T1, Ty = T2>, T2: ?Sized + 'a, F2::Err: IntoFieldErr<CombErr>, F3: RevGetFieldImpl<'a, T2, Ty = T3>, T3: ?Sized + 'a, F3::Err: IntoFieldErr<CombErr>, F4: RevGetFieldImpl<'a, T3, Ty = T4>, T4: ?Sized + 'a, F4::Err: IntoFieldErr<CombErr>, F5: RevGetFieldImpl<'a, T4, Ty = T5>, T5: ?Sized + 'a, F5::Err: IntoFieldErr<CombErr>, F6: RevGetFieldImpl<'a, T5, Ty = T6>, T6: ?Sized + 'a, F6::Err: IntoFieldErr<CombErr>, FL: RevGetFieldImpl<'a, T6, Ty = TL>, TL: ?Sized + 'a, FL::Err: IntoFieldErr<CombErr>,

Source§

fn rev_get_field(self, field: &'a This) -> Result<&'a TL, CombErr>

Accesses the field that self represents inside of this,by reference.
Source§

impl<'a, F0, T0, F1, T1, F2, T2, F3, T3, F4, T4, F5, T5, FL, TL, This, CombErr> RevGetFieldImpl<'a, This> for NestedFieldPath<(F0, F1, F2, F3, F4, F5, FL)>
where This: ?Sized + 'a, Self: RevFieldErr<This, Ty = TL, Err = CombErr>, CombErr: IsFieldErr, F0: RevGetFieldImpl<'a, This, Ty = T0>, T0: ?Sized + 'a, F0::Err: IntoFieldErr<CombErr>, F1: RevGetFieldImpl<'a, T0, Ty = T1>, T1: ?Sized + 'a, F1::Err: IntoFieldErr<CombErr>, F2: RevGetFieldImpl<'a, T1, Ty = T2>, T2: ?Sized + 'a, F2::Err: IntoFieldErr<CombErr>, F3: RevGetFieldImpl<'a, T2, Ty = T3>, T3: ?Sized + 'a, F3::Err: IntoFieldErr<CombErr>, F4: RevGetFieldImpl<'a, T3, Ty = T4>, T4: ?Sized + 'a, F4::Err: IntoFieldErr<CombErr>, F5: RevGetFieldImpl<'a, T4, Ty = T5>, T5: ?Sized + 'a, F5::Err: IntoFieldErr<CombErr>, FL: RevGetFieldImpl<'a, T5, Ty = TL>, TL: ?Sized + 'a, FL::Err: IntoFieldErr<CombErr>,

Source§

fn rev_get_field(self, field: &'a This) -> Result<&'a TL, CombErr>

Accesses the field that self represents inside of this,by reference.
Source§

impl<'a, F0, T0, F1, T1, F2, T2, F3, T3, F4, T4, FL, TL, This, CombErr> RevGetFieldImpl<'a, This> for NestedFieldPath<(F0, F1, F2, F3, F4, FL)>
where This: ?Sized + 'a, Self: RevFieldErr<This, Ty = TL, Err = CombErr>, CombErr: IsFieldErr, F0: RevGetFieldImpl<'a, This, Ty = T0>, T0: ?Sized + 'a, F0::Err: IntoFieldErr<CombErr>, F1: RevGetFieldImpl<'a, T0, Ty = T1>, T1: ?Sized + 'a, F1::Err: IntoFieldErr<CombErr>, F2: RevGetFieldImpl<'a, T1, Ty = T2>, T2: ?Sized + 'a, F2::Err: IntoFieldErr<CombErr>, F3: RevGetFieldImpl<'a, T2, Ty = T3>, T3: ?Sized + 'a, F3::Err: IntoFieldErr<CombErr>, F4: RevGetFieldImpl<'a, T3, Ty = T4>, T4: ?Sized + 'a, F4::Err: IntoFieldErr<CombErr>, FL: RevGetFieldImpl<'a, T4, Ty = TL>, TL: ?Sized + 'a, FL::Err: IntoFieldErr<CombErr>,

Source§

fn rev_get_field(self, field: &'a This) -> Result<&'a TL, CombErr>

Accesses the field that self represents inside of this,by reference.
Source§

impl<'a, F0, T0, F1, T1, F2, T2, F3, T3, FL, TL, This, CombErr> RevGetFieldImpl<'a, This> for NestedFieldPath<(F0, F1, F2, F3, FL)>
where This: ?Sized + 'a, Self: RevFieldErr<This, Ty = TL, Err = CombErr>, CombErr: IsFieldErr, F0: RevGetFieldImpl<'a, This, Ty = T0>, T0: ?Sized + 'a, F0::Err: IntoFieldErr<CombErr>, F1: RevGetFieldImpl<'a, T0, Ty = T1>, T1: ?Sized + 'a, F1::Err: IntoFieldErr<CombErr>, F2: RevGetFieldImpl<'a, T1, Ty = T2>, T2: ?Sized + 'a, F2::Err: IntoFieldErr<CombErr>, F3: RevGetFieldImpl<'a, T2, Ty = T3>, T3: ?Sized + 'a, F3::Err: IntoFieldErr<CombErr>, FL: RevGetFieldImpl<'a, T3, Ty = TL>, TL: ?Sized + 'a, FL::Err: IntoFieldErr<CombErr>,

Source§

fn rev_get_field(self, field: &'a This) -> Result<&'a TL, CombErr>

Accesses the field that self represents inside of this,by reference.
Source§

impl<'a, F0, T0, F1, T1, F2, T2, FL, TL, This, CombErr> RevGetFieldImpl<'a, This> for NestedFieldPath<(F0, F1, F2, FL)>
where This: ?Sized + 'a, Self: RevFieldErr<This, Ty = TL, Err = CombErr>, CombErr: IsFieldErr, F0: RevGetFieldImpl<'a, This, Ty = T0>, T0: ?Sized + 'a, F0::Err: IntoFieldErr<CombErr>, F1: RevGetFieldImpl<'a, T0, Ty = T1>, T1: ?Sized + 'a, F1::Err: IntoFieldErr<CombErr>, F2: RevGetFieldImpl<'a, T1, Ty = T2>, T2: ?Sized + 'a, F2::Err: IntoFieldErr<CombErr>, FL: RevGetFieldImpl<'a, T2, Ty = TL>, TL: ?Sized + 'a, FL::Err: IntoFieldErr<CombErr>,

Source§

fn rev_get_field(self, field: &'a This) -> Result<&'a TL, CombErr>

Accesses the field that self represents inside of this,by reference.
Source§

impl<'a, F0, T0, F1, T1, FL, TL, This, CombErr> RevGetFieldImpl<'a, This> for NestedFieldPath<(F0, F1, FL)>
where This: ?Sized + 'a, Self: RevFieldErr<This, Ty = TL, Err = CombErr>, CombErr: IsFieldErr, F0: RevGetFieldImpl<'a, This, Ty = T0>, T0: ?Sized + 'a, F0::Err: IntoFieldErr<CombErr>, F1: RevGetFieldImpl<'a, T0, Ty = T1>, T1: ?Sized + 'a, F1::Err: IntoFieldErr<CombErr>, FL: RevGetFieldImpl<'a, T1, Ty = TL>, TL: ?Sized + 'a, FL::Err: IntoFieldErr<CombErr>,

Source§

fn rev_get_field(self, field: &'a This) -> Result<&'a TL, CombErr>

Accesses the field that self represents inside of this,by reference.
Source§

impl<'a, F0, T0, FL, TL, This, CombErr> RevGetFieldImpl<'a, This> for NestedFieldPath<(F0, FL)>
where This: ?Sized + 'a, Self: RevFieldErr<This, Ty = TL, Err = CombErr>, CombErr: IsFieldErr, F0: RevGetFieldImpl<'a, This, Ty = T0>, T0: ?Sized + 'a, F0::Err: IntoFieldErr<CombErr>, FL: RevGetFieldImpl<'a, T0, Ty = TL>, TL: ?Sized + 'a, FL::Err: IntoFieldErr<CombErr>,

Source§

fn rev_get_field(self, field: &'a This) -> Result<&'a TL, CombErr>

Accesses the field that self represents inside of this,by reference.
Source§

impl<'a, This> RevGetFieldMutImpl<'a, This> for NestedFieldPath<()>
where This: ?Sized + 'a,

Source§

fn rev_get_field_mut( self, this: &'a mut This, ) -> Result<&'a mut Self::Ty, Self::Err>

Accesses the field that self represents inside of this,by mutable reference.
Source§

unsafe fn rev_get_field_raw_mut( self, this: *mut This, ) -> Result<*mut Self::Ty, Self::Err>

Accesses the field that self represents inside of this,by raw pointer. Read more
Source§

impl<'a, This, F0> RevGetFieldMutImpl<'a, This> for NestedFieldPath<(F0,)>
where This: ?Sized + 'a, F0: RevGetFieldMutImpl<'a, This>,

Source§

fn rev_get_field_mut( self, this: &'a mut This, ) -> Result<&'a mut F0::Ty, F0::Err>

Accesses the field that self represents inside of this,by mutable reference.
Source§

unsafe fn rev_get_field_raw_mut( self, this: *mut This, ) -> Result<*mut F0::Ty, F0::Err>

Accesses the field that self represents inside of this,by raw pointer. Read more
Source§

impl<'a, F0, T0, F1, T1, F2, T2, F3, T3, F4, T4, F5, T5, F6, T6, FL, TL, This, CombErr> RevGetFieldMutImpl<'a, This> for NestedFieldPath<(F0, F1, F2, F3, F4, F5, F6, FL)>
where This: ?Sized + 'a, Self: RevGetFieldImpl<'a, This, Ty = TL, Err = CombErr>, CombErr: IsFieldErr, F0: RevGetFieldMutImpl<'a, This, Ty = T0>, T0: 'a, F0::Err: IntoFieldErr<CombErr>, F1: RevGetFieldMutImpl<'a, T0, Ty = T1>, T1: 'a, F1::Err: IntoFieldErr<CombErr>, F2: RevGetFieldMutImpl<'a, T1, Ty = T2>, T2: 'a, F2::Err: IntoFieldErr<CombErr>, F3: RevGetFieldMutImpl<'a, T2, Ty = T3>, T3: 'a, F3::Err: IntoFieldErr<CombErr>, F4: RevGetFieldMutImpl<'a, T3, Ty = T4>, T4: 'a, F4::Err: IntoFieldErr<CombErr>, F5: RevGetFieldMutImpl<'a, T4, Ty = T5>, T5: 'a, F5::Err: IntoFieldErr<CombErr>, F6: RevGetFieldMutImpl<'a, T5, Ty = T6>, T6: 'a, F6::Err: IntoFieldErr<CombErr>, FL: RevGetFieldMutImpl<'a, T6, Ty = TL>, TL: 'a + Sized, FL::Err: IntoFieldErr<CombErr>,

Source§

fn rev_get_field_mut(self, field: &'a mut This) -> Result<&'a mut TL, CombErr>

Accesses the field that self represents inside of this,by mutable reference.
Source§

unsafe fn rev_get_field_raw_mut( self, field: *mut This, ) -> Result<*mut TL, CombErr>

Accesses the field that self represents inside of this,by raw pointer. Read more
Source§

impl<'a, F0, T0, F1, T1, F2, T2, F3, T3, F4, T4, F5, T5, FL, TL, This, CombErr> RevGetFieldMutImpl<'a, This> for NestedFieldPath<(F0, F1, F2, F3, F4, F5, FL)>
where This: ?Sized + 'a, Self: RevGetFieldImpl<'a, This, Ty = TL, Err = CombErr>, CombErr: IsFieldErr, F0: RevGetFieldMutImpl<'a, This, Ty = T0>, T0: 'a, F0::Err: IntoFieldErr<CombErr>, F1: RevGetFieldMutImpl<'a, T0, Ty = T1>, T1: 'a, F1::Err: IntoFieldErr<CombErr>, F2: RevGetFieldMutImpl<'a, T1, Ty = T2>, T2: 'a, F2::Err: IntoFieldErr<CombErr>, F3: RevGetFieldMutImpl<'a, T2, Ty = T3>, T3: 'a, F3::Err: IntoFieldErr<CombErr>, F4: RevGetFieldMutImpl<'a, T3, Ty = T4>, T4: 'a, F4::Err: IntoFieldErr<CombErr>, F5: RevGetFieldMutImpl<'a, T4, Ty = T5>, T5: 'a, F5::Err: IntoFieldErr<CombErr>, FL: RevGetFieldMutImpl<'a, T5, Ty = TL>, TL: 'a + Sized, FL::Err: IntoFieldErr<CombErr>,

Source§

fn rev_get_field_mut(self, field: &'a mut This) -> Result<&'a mut TL, CombErr>

Accesses the field that self represents inside of this,by mutable reference.
Source§

unsafe fn rev_get_field_raw_mut( self, field: *mut This, ) -> Result<*mut TL, CombErr>

Accesses the field that self represents inside of this,by raw pointer. Read more
Source§

impl<'a, F0, T0, F1, T1, F2, T2, F3, T3, F4, T4, FL, TL, This, CombErr> RevGetFieldMutImpl<'a, This> for NestedFieldPath<(F0, F1, F2, F3, F4, FL)>
where This: ?Sized + 'a, Self: RevGetFieldImpl<'a, This, Ty = TL, Err = CombErr>, CombErr: IsFieldErr, F0: RevGetFieldMutImpl<'a, This, Ty = T0>, T0: 'a, F0::Err: IntoFieldErr<CombErr>, F1: RevGetFieldMutImpl<'a, T0, Ty = T1>, T1: 'a, F1::Err: IntoFieldErr<CombErr>, F2: RevGetFieldMutImpl<'a, T1, Ty = T2>, T2: 'a, F2::Err: IntoFieldErr<CombErr>, F3: RevGetFieldMutImpl<'a, T2, Ty = T3>, T3: 'a, F3::Err: IntoFieldErr<CombErr>, F4: RevGetFieldMutImpl<'a, T3, Ty = T4>, T4: 'a, F4::Err: IntoFieldErr<CombErr>, FL: RevGetFieldMutImpl<'a, T4, Ty = TL>, TL: 'a + Sized, FL::Err: IntoFieldErr<CombErr>,

Source§

fn rev_get_field_mut(self, field: &'a mut This) -> Result<&'a mut TL, CombErr>

Accesses the field that self represents inside of this,by mutable reference.
Source§

unsafe fn rev_get_field_raw_mut( self, field: *mut This, ) -> Result<*mut TL, CombErr>

Accesses the field that self represents inside of this,by raw pointer. Read more
Source§

impl<'a, F0, T0, F1, T1, F2, T2, F3, T3, FL, TL, This, CombErr> RevGetFieldMutImpl<'a, This> for NestedFieldPath<(F0, F1, F2, F3, FL)>
where This: ?Sized + 'a, Self: RevGetFieldImpl<'a, This, Ty = TL, Err = CombErr>, CombErr: IsFieldErr, F0: RevGetFieldMutImpl<'a, This, Ty = T0>, T0: 'a, F0::Err: IntoFieldErr<CombErr>, F1: RevGetFieldMutImpl<'a, T0, Ty = T1>, T1: 'a, F1::Err: IntoFieldErr<CombErr>, F2: RevGetFieldMutImpl<'a, T1, Ty = T2>, T2: 'a, F2::Err: IntoFieldErr<CombErr>, F3: RevGetFieldMutImpl<'a, T2, Ty = T3>, T3: 'a, F3::Err: IntoFieldErr<CombErr>, FL: RevGetFieldMutImpl<'a, T3, Ty = TL>, TL: 'a + Sized, FL::Err: IntoFieldErr<CombErr>,

Source§

fn rev_get_field_mut(self, field: &'a mut This) -> Result<&'a mut TL, CombErr>

Accesses the field that self represents inside of this,by mutable reference.
Source§

unsafe fn rev_get_field_raw_mut( self, field: *mut This, ) -> Result<*mut TL, CombErr>

Accesses the field that self represents inside of this,by raw pointer. Read more
Source§

impl<'a, F0, T0, F1, T1, F2, T2, FL, TL, This, CombErr> RevGetFieldMutImpl<'a, This> for NestedFieldPath<(F0, F1, F2, FL)>
where This: ?Sized + 'a, Self: RevGetFieldImpl<'a, This, Ty = TL, Err = CombErr>, CombErr: IsFieldErr, F0: RevGetFieldMutImpl<'a, This, Ty = T0>, T0: 'a, F0::Err: IntoFieldErr<CombErr>, F1: RevGetFieldMutImpl<'a, T0, Ty = T1>, T1: 'a, F1::Err: IntoFieldErr<CombErr>, F2: RevGetFieldMutImpl<'a, T1, Ty = T2>, T2: 'a, F2::Err: IntoFieldErr<CombErr>, FL: RevGetFieldMutImpl<'a, T2, Ty = TL>, TL: 'a + Sized, FL::Err: IntoFieldErr<CombErr>,

Source§

fn rev_get_field_mut(self, field: &'a mut This) -> Result<&'a mut TL, CombErr>

Accesses the field that self represents inside of this,by mutable reference.
Source§

unsafe fn rev_get_field_raw_mut( self, field: *mut This, ) -> Result<*mut TL, CombErr>

Accesses the field that self represents inside of this,by raw pointer. Read more
Source§

impl<'a, F0, T0, F1, T1, FL, TL, This, CombErr> RevGetFieldMutImpl<'a, This> for NestedFieldPath<(F0, F1, FL)>
where This: ?Sized + 'a, Self: RevGetFieldImpl<'a, This, Ty = TL, Err = CombErr>, CombErr: IsFieldErr, F0: RevGetFieldMutImpl<'a, This, Ty = T0>, T0: 'a, F0::Err: IntoFieldErr<CombErr>, F1: RevGetFieldMutImpl<'a, T0, Ty = T1>, T1: 'a, F1::Err: IntoFieldErr<CombErr>, FL: RevGetFieldMutImpl<'a, T1, Ty = TL>, TL: 'a + Sized, FL::Err: IntoFieldErr<CombErr>,

Source§

fn rev_get_field_mut(self, field: &'a mut This) -> Result<&'a mut TL, CombErr>

Accesses the field that self represents inside of this,by mutable reference.
Source§

unsafe fn rev_get_field_raw_mut( self, field: *mut This, ) -> Result<*mut TL, CombErr>

Accesses the field that self represents inside of this,by raw pointer. Read more
Source§

impl<'a, F0, T0, FL, TL, This, CombErr> RevGetFieldMutImpl<'a, This> for NestedFieldPath<(F0, FL)>
where This: ?Sized + 'a, Self: RevGetFieldImpl<'a, This, Ty = TL, Err = CombErr>, CombErr: IsFieldErr, F0: RevGetFieldMutImpl<'a, This, Ty = T0>, T0: 'a, F0::Err: IntoFieldErr<CombErr>, FL: RevGetFieldMutImpl<'a, T0, Ty = TL>, TL: 'a + Sized, FL::Err: IntoFieldErr<CombErr>,

Source§

fn rev_get_field_mut(self, field: &'a mut This) -> Result<&'a mut TL, CombErr>

Accesses the field that self represents inside of this,by mutable reference.
Source§

unsafe fn rev_get_field_raw_mut( self, field: *mut This, ) -> Result<*mut TL, CombErr>

Accesses the field that self represents inside of this,by raw pointer. Read more
Source§

impl<'a, This, T> RevGetMultiFieldImpl<'a, This> for NestedFieldPath<T>
where Self: RevGetFieldImpl<'a, This>, This: 'a + ?Sized, RGFT<Self, This>: 'a, Result<&'a RGFT<Self, This>, RGFE<Self, This>>: 'a + NormalizeFields,

Source§

type UnnormFields = (Result<&'a <NestedFieldPath<T> as RevFieldType<This>>::Ty, <NestedFieldPath<T> as RevFieldErr<This>>::Err>,)

A collection of Results<&'a _,_>s referencing fields.
Source§

fn rev_get_multi_field_impl( self, this: &'a This, ) -> (Result<&'a RGFT<Self, This>, RGFE<Self, This>>,)

Gets references to multiple fields from this.
Source§

impl<'a, This, T> RevGetMultiFieldMutImpl<'a, This> for NestedFieldPath<T>
where Self: RevGetFieldMutImpl<'a, This>, This: 'a + ?Sized, RGFT<Self, This>: 'a, Result<&'a mut RGFT<Self, This>, RGFE<Self, This>>: NormalizeFields, Result<*mut RGFT<Self, This>, RGFE<Self, This>>: NormalizeFields,

Source§

type UnnormFieldsMut = (Result<&'a mut <NestedFieldPath<T> as RevFieldType<This>>::Ty, <NestedFieldPath<T> as RevFieldErr<This>>::Err>,)

This is usually a tuple of Result<&mut _,E: IsFieldErr>s.
Source§

type UnnormFieldsRawMut = (Result<*mut <NestedFieldPath<T> as RevFieldType<This>>::Ty, <NestedFieldPath<T> as RevFieldErr<This>>::Err>,)

This is usually a tuple of Result<*mut _,E: IsFieldErr>s.
Source§

fn rev_get_multi_field_mut_impl( self, this: &'a mut This, ) -> (Result<&'a mut RGFT<Self, This>, RGFE<Self, This>>,)

Gets mutable references to multiple fields from this, usually a tuple of Result<&mut _,E: IsFieldErr>s.
Source§

unsafe fn rev_get_multi_field_raw_mut_impl( self, this: *mut This, ) -> (Result<*mut RGFT<Self, This>, RGFE<Self, This>>,)

Gets raw pointers to multiple fields from this, usually a tuple of Result<*mut _,E: IsFieldErr>s. Read more
Source§

impl<This> RevIntoFieldImpl<This> for NestedFieldPath<()>

Source§

fn rev_into_field(self, this: This) -> Result<Self::Ty, Self::Err>

Accesses the field that self represents inside of this,by value.
Source§

impl<This, F0> RevIntoFieldImpl<This> for NestedFieldPath<(F0,)>
where This: ?Sized, F0: RevIntoFieldImpl<This>,

Source§

fn rev_into_field(self, this: This) -> Result<F0::Ty, F0::Err>
where This: Sized, F0::Ty: Sized,

Accesses the field that self represents inside of this,by value.
Source§

impl<F0, T0, E0, F1, T1, E1, F2, T2, E2, F3, T3, E3, F4, T4, E4, F5, T5, E5, F6, T6, E6, FL, TL, EL, This, CombErr> RevIntoFieldImpl<This> for NestedFieldPath<(F0, F1, F2, F3, F4, F5, F6, FL)>
where Self: RevFieldErr<This, Ty = TL, Err = CombErr>, CombErr: IsFieldErr, This: ?Sized, F0: RevIntoFieldImpl<This, Ty = T0, Err = E0>, F1: RevIntoFieldImpl<T0, Ty = T1, Err = E1>, F2: RevIntoFieldImpl<T1, Ty = T2, Err = E2>, F3: RevIntoFieldImpl<T2, Ty = T3, Err = E3>, F4: RevIntoFieldImpl<T3, Ty = T4, Err = E4>, F5: RevIntoFieldImpl<T4, Ty = T5, Err = E5>, F6: RevIntoFieldImpl<T5, Ty = T6, Err = E6>, FL: RevIntoFieldImpl<T6, Ty = TL, Err = EL>, E0: IntoFieldErr<CombErr>, E1: IntoFieldErr<CombErr>, E2: IntoFieldErr<CombErr>, E3: IntoFieldErr<CombErr>, E4: IntoFieldErr<CombErr>, E5: IntoFieldErr<CombErr>, E6: IntoFieldErr<CombErr>, EL: IntoFieldErr<CombErr>,

Source§

fn rev_into_field(self, field: This) -> Result<TL, CombErr>
where This: Sized,

Accesses the field that self represents inside of this,by value.
Source§

impl<F0, T0, E0, F1, T1, E1, F2, T2, E2, F3, T3, E3, F4, T4, E4, F5, T5, E5, FL, TL, EL, This, CombErr> RevIntoFieldImpl<This> for NestedFieldPath<(F0, F1, F2, F3, F4, F5, FL)>
where Self: RevFieldErr<This, Ty = TL, Err = CombErr>, CombErr: IsFieldErr, This: ?Sized, F0: RevIntoFieldImpl<This, Ty = T0, Err = E0>, F1: RevIntoFieldImpl<T0, Ty = T1, Err = E1>, F2: RevIntoFieldImpl<T1, Ty = T2, Err = E2>, F3: RevIntoFieldImpl<T2, Ty = T3, Err = E3>, F4: RevIntoFieldImpl<T3, Ty = T4, Err = E4>, F5: RevIntoFieldImpl<T4, Ty = T5, Err = E5>, FL: RevIntoFieldImpl<T5, Ty = TL, Err = EL>, E0: IntoFieldErr<CombErr>, E1: IntoFieldErr<CombErr>, E2: IntoFieldErr<CombErr>, E3: IntoFieldErr<CombErr>, E4: IntoFieldErr<CombErr>, E5: IntoFieldErr<CombErr>, EL: IntoFieldErr<CombErr>,

Source§

fn rev_into_field(self, field: This) -> Result<TL, CombErr>
where This: Sized,

Accesses the field that self represents inside of this,by value.
Source§

impl<F0, T0, E0, F1, T1, E1, F2, T2, E2, F3, T3, E3, F4, T4, E4, FL, TL, EL, This, CombErr> RevIntoFieldImpl<This> for NestedFieldPath<(F0, F1, F2, F3, F4, FL)>
where Self: RevFieldErr<This, Ty = TL, Err = CombErr>, CombErr: IsFieldErr, This: ?Sized, F0: RevIntoFieldImpl<This, Ty = T0, Err = E0>, F1: RevIntoFieldImpl<T0, Ty = T1, Err = E1>, F2: RevIntoFieldImpl<T1, Ty = T2, Err = E2>, F3: RevIntoFieldImpl<T2, Ty = T3, Err = E3>, F4: RevIntoFieldImpl<T3, Ty = T4, Err = E4>, FL: RevIntoFieldImpl<T4, Ty = TL, Err = EL>, E0: IntoFieldErr<CombErr>, E1: IntoFieldErr<CombErr>, E2: IntoFieldErr<CombErr>, E3: IntoFieldErr<CombErr>, E4: IntoFieldErr<CombErr>, EL: IntoFieldErr<CombErr>,

Source§

fn rev_into_field(self, field: This) -> Result<TL, CombErr>
where This: Sized,

Accesses the field that self represents inside of this,by value.
Source§

impl<F0, T0, E0, F1, T1, E1, F2, T2, E2, F3, T3, E3, FL, TL, EL, This, CombErr> RevIntoFieldImpl<This> for NestedFieldPath<(F0, F1, F2, F3, FL)>
where Self: RevFieldErr<This, Ty = TL, Err = CombErr>, CombErr: IsFieldErr, This: ?Sized, F0: RevIntoFieldImpl<This, Ty = T0, Err = E0>, F1: RevIntoFieldImpl<T0, Ty = T1, Err = E1>, F2: RevIntoFieldImpl<T1, Ty = T2, Err = E2>, F3: RevIntoFieldImpl<T2, Ty = T3, Err = E3>, FL: RevIntoFieldImpl<T3, Ty = TL, Err = EL>, E0: IntoFieldErr<CombErr>, E1: IntoFieldErr<CombErr>, E2: IntoFieldErr<CombErr>, E3: IntoFieldErr<CombErr>, EL: IntoFieldErr<CombErr>,

Source§

fn rev_into_field(self, field: This) -> Result<TL, CombErr>
where This: Sized,

Accesses the field that self represents inside of this,by value.
Source§

impl<F0, T0, E0, F1, T1, E1, F2, T2, E2, FL, TL, EL, This, CombErr> RevIntoFieldImpl<This> for NestedFieldPath<(F0, F1, F2, FL)>
where Self: RevFieldErr<This, Ty = TL, Err = CombErr>, CombErr: IsFieldErr, This: ?Sized, F0: RevIntoFieldImpl<This, Ty = T0, Err = E0>, F1: RevIntoFieldImpl<T0, Ty = T1, Err = E1>, F2: RevIntoFieldImpl<T1, Ty = T2, Err = E2>, FL: RevIntoFieldImpl<T2, Ty = TL, Err = EL>, E0: IntoFieldErr<CombErr>, E1: IntoFieldErr<CombErr>, E2: IntoFieldErr<CombErr>, EL: IntoFieldErr<CombErr>,

Source§

fn rev_into_field(self, field: This) -> Result<TL, CombErr>
where This: Sized,

Accesses the field that self represents inside of this,by value.
Source§

impl<F0, T0, E0, F1, T1, E1, FL, TL, EL, This, CombErr> RevIntoFieldImpl<This> for NestedFieldPath<(F0, F1, FL)>
where Self: RevFieldErr<This, Ty = TL, Err = CombErr>, CombErr: IsFieldErr, This: ?Sized, F0: RevIntoFieldImpl<This, Ty = T0, Err = E0>, F1: RevIntoFieldImpl<T0, Ty = T1, Err = E1>, FL: RevIntoFieldImpl<T1, Ty = TL, Err = EL>, E0: IntoFieldErr<CombErr>, E1: IntoFieldErr<CombErr>, EL: IntoFieldErr<CombErr>,

Source§

fn rev_into_field(self, field: This) -> Result<TL, CombErr>
where This: Sized,

Accesses the field that self represents inside of this,by value.
Source§

impl<F0, T0, E0, FL, TL, EL, This, CombErr> RevIntoFieldImpl<This> for NestedFieldPath<(F0, FL)>
where Self: RevFieldErr<This, Ty = TL, Err = CombErr>, CombErr: IsFieldErr, This: ?Sized, F0: RevIntoFieldImpl<This, Ty = T0, Err = E0>, FL: RevIntoFieldImpl<T0, Ty = TL, Err = EL>, E0: IntoFieldErr<CombErr>, EL: IntoFieldErr<CombErr>,

Source§

fn rev_into_field(self, field: This) -> Result<TL, CombErr>
where This: Sized,

Accesses the field that self represents inside of this,by value.
Source§

impl<This, T> RevIntoMultiFieldImpl<This> for NestedFieldPath<T>
where Self: RevIntoFieldImpl<This>, RGFT<Self, This>: Sized, Result<RGFT<Self, This>, RGFE<Self, This>>: NormalizeFields,

Source§

type UnnormIntoFields = (Result<<NestedFieldPath<T> as RevFieldType<This>>::Ty, <NestedFieldPath<T> as RevFieldErr<This>>::Err>,)

This is usually a tuple of Result<_, E: IsFieldErr>s.
Source§

fn rev_into_multi_field_impl( self, this: This, ) -> (Result<RGFT<Self, This>, RGFE<Self, This>>,)

Converts this into multiple fields by value, usually a tuple of Result<_, E: IsFieldErr>s.
Source§

impl<This, F0> RevMoveOutFieldImpl<This> for NestedFieldPath<(F0,)>
where This: ?Sized, F0: RevMoveOutFieldImpl<This>,

Source§

unsafe fn rev_move_out_field( self, this: &mut This, moved: &mut MovedOutFields, ) -> Result<Self::Ty, Self::Err>
where Self::Ty: Sized,

Moves out the field that self represents inside of this. Read more
Source§

impl<S> ToUsize for NestedFieldPath<(S,)>
where S: ToUsize,

Single index NestedFieldPaths up to 19 digits can be converted to usize (assuming that usize can store that number)

Source§

const USIZE: usize = S::USIZE

The usize that this type represents
Source§

impl<T: Copy> Copy for NestedFieldPath<T>

Source§

impl<T> Eq for NestedFieldPath<T>

Source§

impl<T> IsSingleFieldPath for NestedFieldPath<T>

Source§

impl<F0> ShallowFieldPath for NestedFieldPath<(F0,)>
where F0: ShallowFieldPath,

Auto Trait Implementations§

§

impl<T> Freeze for NestedFieldPath<T>
where T: Freeze,

§

impl<T> RefUnwindSafe for NestedFieldPath<T>
where T: RefUnwindSafe,

§

impl<T> Send for NestedFieldPath<T>
where T: Send,

§

impl<T> Sync for NestedFieldPath<T>
where T: Sync,

§

impl<T> Unpin for NestedFieldPath<T>
where T: Unpin,

§

impl<T> UnwindSafe for NestedFieldPath<T>
where T: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<This> EnumExt for This
where This: ?Sized,

Source§

fn as_variant<V>( &self, vari: TStr<V>, ) -> Result<&VariantProxy<Self, TStr<V>>, &Self>
where Self: IsVariant<TStr<V>>,

Fallibly converts a reference to an enum into a reference of a VariantProxy of some variant. Read more
Source§

fn as_mut_variant<V>( &mut self, vari: TStr<V>, ) -> Result<&mut VariantProxy<Self, TStr<V>>, &mut Self>
where Self: IsVariant<TStr<V>>,

Fallibly converts a mutable reference to an enum into a mutable reference of a VariantProxy of some variant. Read more
Source§

unsafe fn as_raw_mut_variant<V>( this: *mut Self, vari: TStr<V>, ) -> Result<*mut VariantProxy<Self, TStr<V>>, *mut Self>
where Self: IsVariant<TStr<V>>,

Fallibly converts a raw pointer to an enum into a raw pointer of a VariantProxy of some variant. Read more
Source§

fn into_variant<V>( self, vari: TStr<V>, ) -> Result<VariantProxy<Self, TStr<V>>, Self>
where Self: IsVariant<TStr<V>> + Sized,

Fallibly converts an enum into a VariantProxy of some variant. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<This, T> IntoStructural<T> for This
where T: FromStructural<This>,

Source§

fn into_structural(self) -> T

Performs the conversion
Source§

impl<'a, This, Path> RevGetMultiField<'a, This> for Path
where This: 'a + ?Sized, Path: RevGetMultiFieldImpl<'a, This>,

Source§

type Fields = <<Path as RevGetMultiFieldImpl<'a, This>>::UnnormFields as NormalizeFields>::Output

This is usually a tuple of Option<&_>s and &_s.
Source§

fn rev_get_multi_field( self, this: &'a This, ) -> <Path as RevGetMultiField<'a, This>>::Fields

Gets references to multiple fields from this, usually a tuple of Option<&_>s and &_s.
Source§

impl<'a, This, Path> RevGetMultiFieldMut<'a, This> for Path
where This: 'a + ?Sized, Path: RevGetMultiFieldMutImpl<'a, This>,

Source§

type FieldsMut = <<Path as RevGetMultiFieldMutImpl<'a, This>>::UnnormFieldsMut as NormalizeFields>::Output

This is usually a tuple of Option<&mut _>s and &mut _s.
Source§

type FieldsRawMut = <<Path as RevGetMultiFieldMutImpl<'a, This>>::UnnormFieldsRawMut as NormalizeFields>::Output

This is usually a tuple of Option<*mut _>s and *mut _s.
Source§

fn rev_get_multi_field_mut( self, this: &'a mut This, ) -> <Path as RevGetMultiFieldMut<'a, This>>::FieldsMut

Gets mutable references to multiple fields from this, usually a tuple of Option<&mut _>s and &mut _s.
Source§

unsafe fn rev_get_multi_field_raw_mut( self, this: *mut This, ) -> <Path as RevGetMultiFieldMut<'a, This>>::FieldsRawMut

Gets raw pointers to multiple fields from this, usually a tuple of Option<*mut _>s and *mut _s. Read more
Source§

impl<This, Path> RevIntoMultiField<This> for Path
where Path: RevIntoMultiFieldImpl<This>,

Source§

type IntoFields = <<Path as RevIntoMultiFieldImpl<This>>::UnnormIntoFields as NormalizeFields>::Output

This is usually a tuple of Option<T>s and Ts.
Source§

fn rev_into_multi_field( self, this: This, ) -> <Path as RevIntoMultiField<This>>::IntoFields

Converts this into multiple fields by value. usually a tuple of Option<T>s and Ts.
Source§

impl<T> SelfOps for T
where T: ?Sized,

Source§

const T: PhantomData<fn() -> Self> = PhantomData

Represents Self by using a VariantPhantom, using the syntax Type::T to pass it in methods with _:VariantPhantom<T> parameters. Read more
Source§

const T_D: PhantomData<Self> = PhantomData

Represents Self by using a VariantDropPhantom,for specialized cases. Read more
Source§

fn assert_ty(self, _other: PhantomData<fn() -> Self>) -> Self
where Self: Sized,

Asserts that other is the same type as self.
Source§

fn assert_ty_ref(&self, _other: PhantomData<fn() -> Self>) -> &Self
where Self: Sized,

Asserts that other is the same type as self.
Source§

fn assert_ty_mut(&mut self, _other: PhantomData<fn() -> Self>) -> &mut Self
where Self: Sized,

Asserts that other is the same type as self.
Source§

fn ty_(&self) -> PhantomData<fn() -> Self>

Equivalent to SelfOps::T,as a method. Read more
Source§

fn ty_d(&self) -> PhantomData<Self>

Equivalent to Self::ty_,for specialized cases. Read more
Source§

fn ty_inv(&self) -> PhantomData<fn(Self) -> Self>

Equivalent to Self::ty_ with an invariant type.
Source§

fn ty_inv_ref(&self) -> PhantomData<Cell<&Self>>

Equivalent to Self::ty_ with an invariant lifetime.
Source§

fn eq_id(&self, other: &Self) -> bool

Identity comparison to another value of the same type. Read more
Source§

fn piped<F, U>(self, f: F) -> U
where F: FnOnce(Self) -> U, Self: Sized,

Emulates the pipeline operator,allowing method syntax in more places. Read more
Source§

fn piped_ref<'a, F, U>(&'a self, f: F) -> U
where F: FnOnce(&'a Self) -> U,

The same as piped except that the function takes &Self Useful for functions that take &Self instead of Self. Read more
Source§

fn piped_mut<'a, F, U>(&'a mut self, f: F) -> U
where F: FnOnce(&'a mut Self) -> U,

The same as piped except that the function takes &mut Self. Useful for functions that take &mut Self instead of Self.
Source§

fn mutated<F>(self, f: F) -> Self
where F: FnOnce(&mut Self), Self: Sized,

Mutates self using a closure taking self by mutable reference, passing it along the method chain. Read more
Source§

fn observe<F>(self, f: F) -> Self
where F: FnOnce(&Self), Self: Sized,

Observes the value of self passing it along unmodified. Useful in a long method chain. Read more
Source§

fn into_<T>(self, _: PhantomData<fn() -> T>) -> T
where Self: Into<T>,

Performs a conversion using Into. Read more
Source§

fn as_ref_<T>(&self) -> &T
where Self: AsRef<T>, T: ?Sized,

Performs a reference to reference conversion using AsRef, using the turbofish .as_ref_::<_>() syntax. Read more
Source§

fn as_mut_<T>(&mut self) -> &mut T
where Self: AsMut<T>, T: ?Sized,

Performs a mutable reference to mutable reference conversion using AsMut, using the turbofish .as_mut_::<_>() syntax. Read more
Source§

fn drop_(self)
where Self: Sized,

Drops self using method notation. Alternative to std::mem::drop. Read more
Source§

impl<T> StructuralExt for T
where T: ?Sized,

Source§

fn field_<'a, P>( &'a self, path: P, ) -> NormalizeFieldsOut<Result<&'a P::Ty, P::Err>>
where P: RevGetFieldImpl<'a, Self>, Result<&'a P::Ty, P::Err>: NormalizeFields,

Gets a reference to a field,determined by path. Read more
Source§

fn fields<'a, P>(&'a self, path: P) -> RevGetMultiFieldOut<'a, P, Self>
where P: RevGetMultiField<'a, Self>,

Gets references to multiple fields,determined by path. Read more
Source§

fn cloned_fields<'a, P>( &'a self, path: P, ) -> ClonedOut<RevGetMultiFieldOut<'a, P, Self>>
where P: RevGetMultiField<'a, Self>, RevGetMultiFieldOut<'a, P, Self>: Cloned,

Gets clones of multiple fields,determined by path. Read more
Source§

fn field_mut<'a, P>( &'a mut self, path: P, ) -> NormalizeFieldsOut<Result<&'a mut P::Ty, P::Err>>
where P: RevGetFieldMutImpl<'a, Self>, Result<&'a mut P::Ty, P::Err>: NormalizeFields,

Gets a mutable reference to a field,determined by path. Read more
Source§

fn fields_mut<'a, P>( &'a mut self, path: P, ) -> RevGetMultiFieldMutOut<'a, P, Self>
where P: RevGetMultiFieldMut<'a, Self>,

Gets mutable references to multiple fields,determined by path. Read more
Source§

fn into_field<P>(self, path: P) -> NormalizeFieldsOut<Result<P::Ty, P::Err>>
where P: RevIntoFieldImpl<Self>, P::Ty: Sized, Result<P::Ty, P::Err>: NormalizeFields, Self: Sized,

Converts ´self´ into a field,determined by path. Read more
Source§

fn into_fields<P>(self, path: P) -> RevIntoMultiFieldOut<P, Self>
where P: RevIntoMultiField<Self>, Self: Sized,

Converts self into multiple fields by value. Read more
Source§

fn is_variant<P>(&self, _path: P) -> bool
where P: IsTStr, Self: IsVariant<P>,

Checks whether an enum is a particular variant. Read more
Source§

fn into_struc<U>(self) -> U
where Self: IntoStructural<U>,

Converts this into another structural type using IntoStructural. Read more
Source§

fn try_into_struc<U>(self) -> Result<U, TryFromError<Self, Self::Error>>
where Self: TryIntoStructural<U>,

Performs a fallible conversion into another structural type using TryIntoStructural. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The error type returned when the conversion fails.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion
Source§

impl<This, T> TryIntoStructural<T> for This
where T: TryFromStructural<This>,

Source§

type Error = <T as TryFromStructural<This>>::Error

The error parameter of TryFromError, returned from try_into_structural on conversion error.
Source§

fn try_into_structural( self, ) -> Result<T, TryFromError<This, <This as TryIntoStructural<T>>::Error>>

Performs the conversion
Source§

impl<T> TypeIdentity for T
where T: ?Sized,

Source§

type Type = T

The same type as Self. Read more
Source§

fn into_type_val(self) -> Self::Type
where Self: Sized, Self::Type: Sized,

Converts a value back to the original type.
Source§

fn into_type_ref(&self) -> &Self::Type

Converts a reference back to the original type.
Source§

fn into_type_mut(&mut self) -> &mut Self::Type

Converts a mutable reference back to the original type.
Source§

fn into_type_box(self: Box<Self>) -> Box<Self::Type>

Converts a box back to the original type.
Source§

fn into_type_arc(this: Arc<Self>) -> Arc<Self::Type>

Converts an Arc back to the original type.
Source§

fn into_type_rc(this: Rc<Self>) -> Rc<Self::Type>

Converts an Rc back to the original type.
Source§

fn from_type_val(this: Self::Type) -> Self
where Self: Sized, Self::Type: Sized,

Converts a value back to the original type.
Source§

fn from_type_ref(this: &Self::Type) -> &Self

Converts a reference back to the original type.
Source§

fn from_type_mut(this: &mut Self::Type) -> &mut Self

Converts a mutable reference back to the original type.
Source§

fn from_type_box(this: Box<Self::Type>) -> Box<Self>

Converts a box back to the original type.
Source§

fn from_type_arc(this: Arc<Self::Type>) -> Arc<Self>

Converts an Arc back to the original type.
Source§

fn from_type_rc(this: Rc<Self::Type>) -> Rc<Self>

Converts an Rc back to the original type.
Source§

impl<This, T> Array0<T> for This
where This: ?Sized,

Source§

impl<This, V, T> Array0Variant<T, V> for This
where This: ?Sized,

Source§

impl<This, T> ArrayMove0<T> for This
where This: ?Sized,

Source§

impl<'a, Path, This> OptRevGetField<'a, This> for Path
where Path: RevGetFieldImpl<'a, This, Err = FailedAccess>,

Source§

impl<'a, Path, This> OptRevGetFieldMut<'a, This> for Path
where Path: RevGetFieldMutImpl<'a, This, Err = FailedAccess>,

Source§

impl<Path, This> OptRevIntoField<This> for Path
where Path: RevIntoFieldImpl<This, Err = FailedAccess>,

Source§

impl<'a, Path, This> OptRevIntoFieldMut<'a, This> for Path
where Path: OptRevIntoField<This> + OptRevGetFieldMut<'a, This>,

Source§

impl<'a, Path, This> OptRevIntoFieldRef<'a, This> for Path
where Path: OptRevIntoField<This> + OptRevGetFieldMut<'a, This>,

Source§

impl<'a, Path, This> RevGetField<'a, This> for Path
where Path: RevGetFieldImpl<'a, This, Err = InfallibleAccess>,

Source§

impl<'a, Path, This> RevGetFieldMut<'a, This> for Path
where Path: RevGetFieldMutImpl<'a, This, Err = InfallibleAccess>,

Source§

impl<Path, This> RevIntoField<This> for Path
where Path: RevIntoFieldImpl<This, Err = InfallibleAccess>,

Source§

impl<'a, Path, This> RevIntoFieldMut<'a, This> for Path
where Path: RevIntoField<This> + RevGetFieldMut<'a, This>,

Source§

impl<'a, Path, This> RevIntoFieldRef<'a, This> for Path
where Path: RevIntoField<This> + RevGetFieldMut<'a, This>,