[−][src]Struct structural::NestedFieldPathSet
Allows accessing multiple fields inside of some nested field.
This is most useful for accessing multiple fields inside of a (nested) enum.
This is the type that fp!(a.b => b, c, d)
and fp!(::Foo => bar, baz, qux)
construct.
Uniqueness
If the U
type parameter is a:
-
UniquePaths
: all the field paths are unique, and this can be passed toStructuralExt::fields_mut
andStructuralExt::into_fields
. -
AliasedPaths
: there might be repeated field paths. This cannot be passed toStructuralExt::fields_mut
, because it might borrow the same field mutably twice. This can also not be passed toStructuralExt::into_fields
, because a field cannot generally be moved out twice.
Construction
NestedFieldPathSet can be constructed in these ways:
-
Using the
fp
macro.
Example:fp!(::Foo=>a,b)
, this gets thea
,andb
fields from inside theFoo
variant.
Example:fp!(a.b=>uh,what)
, this gets theuh
,andwhat
fields from inside thea.b
field. -
Constructing it from a
NestedFieldPath
and aFieldPathSet
.
Example:NestedFieldPathSet::new( fp!(a.b.c), fp!(foo,bar,baz) )
, this gets thefoo
,bar
,andbaz
fields from inside thea.b.c
field.
Example:NestedFieldPathSet::new( fp!(::Foo), fp!(a,b) )
, this gets thea
,andb
fields from inside theFoo
variant. -
Using the
NEW
associated constant, ifF
andS
implementscore_extensions::ConstDefault
(reexported instructural::reexports::ConstDefault
) Example:<FP!(::Foo=>a,b,c)>::NEW
Drop Types
To make all the inherent methods in this type const fn
this type wraps the NestedFieldPath<F>
inside a ManuallyDrop
,
which means that F
won't be dropped inside.
If that is a problem don't construct a NestedFieldPathSet with an F
that owns some resource.
Examples
You can look for examples of using this in the multi-field
StructuralExt
methods, like fields
,fields_mut
,and into_fields
(look for the enum examples).
Implementations
impl<F, S> NestedFieldPathSet<F, S, AliasedPaths> where
F: ConstDefault,
S: ConstDefault,
[src]
F: ConstDefault,
S: ConstDefault,
impl<F, S, U> NestedFieldPathSet<F, S, U> where
F: ConstDefault,
S: ConstDefault,
[src]
F: ConstDefault,
S: ConstDefault,
pub const NEW_ALIASED: NestedFieldPathSet<F, S, AliasedPaths>
[src]
This can be used to construct a NestedFieldPathSet<T, UniquePaths>
from a type alias,
by doing unsafe{ FOO::NEW_ALIASED.upgrade_unchecked() }
(read the docs for upgrade_unchecked
first).
impl<F, S, U> NestedFieldPathSet<F, S, U>
[src]
pub const fn new(nested: F, set: FieldPathSet<S, U>) -> Self
[src]
Constructs a NestedFieldPathSet
from an F
and a FieldPathSet
pub const fn into_inner(self) -> (F, FieldPathSet<S, U>)
[src]
Unwraps a NestedFieldPathSet
into a NestedFieldPath
and a FieldPathSet
pub const fn into_nested(self) -> F
[src]
Unwraps a NestedFieldPathSet
into the NestedFieldPath
for the nested field.
pub const fn into_set(self) -> FieldPathSet<S, U>
[src]
Unwraps a NestedFieldPathSet
into the FieldPathSet
used to
access the multiple fields inside a nested field.
impl<F, S> NestedFieldPathSet<F, S, UniquePaths>
[src]
pub const fn downgrade(self) -> NestedFieldPathSet<F, S, AliasedPaths>
[src]
Converts a NestedFieldPathSet<F, S, UniquePaths>
to a
NestedFieldPathSet<F, S, AliasedPaths>
impl<F, S> NestedFieldPathSet<F, S, AliasedPaths>
[src]
pub const unsafe fn upgrade_unchecked(
self
) -> NestedFieldPathSet<F, S, UniquePaths>
[src]
self
) -> NestedFieldPathSet<F, S, UniquePaths>
Converts a NestedFieldPathSet<F, S, AliasedPaths>
to a
NestedFieldPathSet<F, S, UniquePaths>
Safety
You must ensure that all the field paths in in the S
type parameter are unique,
there must be no field path that is a prefix of any other field path.
pub const unsafe fn set_uniqueness<U>(self) -> NestedFieldPathSet<F, S, U>
[src]
Converts a NestedFieldPathSet<F, S, AliasedPaths>
to a
NestedFieldPathSet<F, S, U>
Safety
If U == UniquePaths
,
you must ensure that all the field paths in the S
type parameter are unique,
there must be no field path that is a prefix of any other field path.
Trait Implementations
impl<F: Clone, S: Clone, U: Clone> Clone for NestedFieldPathSet<F, S, U>
[src]
fn clone(&self) -> NestedFieldPathSet<F, S, U>
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<F, S> ConstDefault for NestedFieldPathSet<F, S, AliasedPaths> where
F: ConstDefault,
S: ConstDefault,
[src]
F: ConstDefault,
S: ConstDefault,
impl<F: Copy, S: Copy, U: Copy> Copy for NestedFieldPathSet<F, S, U>
[src]
impl<F: Debug, S: Debug, U: Debug> Debug for NestedFieldPathSet<F, S, U>
[src]
impl<F, S> Default for NestedFieldPathSet<F, S, AliasedPaths> where
F: Default,
S: Default,
[src]
F: Default,
S: Default,
impl<F, S, U> IntoAliasing for NestedFieldPathSet<F, S, U>
[src]
type Output = NestedFieldPathSet<F, S, AliasedPaths>
The return value of this trait.
impl<F, S, U> IsMultiFieldPath for NestedFieldPathSet<F, S, U>
[src]
type PathUniqueness = U
Whether the paths in the set can contain duplicate paths. Read more
impl<F, S, U> IsSingleFieldPath for NestedFieldPathSet<F, (S,), U>
[src]
impl<This, A, B, U> RevFieldErr<This> for NestedFieldPathSet<A, (B,), U> where
This: ?Sized,
A: RevFieldErr<This>,
B: RevFieldErr<A::Ty>,
(A::Err, B::Err): CombinedErrs,
[src]
This: ?Sized,
A: RevFieldErr<This>,
B: RevFieldErr<A::Ty>,
(A::Err, B::Err): CombinedErrs,
impl<This, A, B, U> RevFieldType<This> for NestedFieldPathSet<A, (B,), U> where
This: ?Sized,
A: RevFieldType<This>,
B: RevFieldType<A::Ty>,
[src]
This: ?Sized,
A: RevFieldType<This>,
B: RevFieldType<A::Ty>,
impl<'a, This: ?Sized, A, B, U> RevGetFieldImpl<'a, This> for NestedFieldPathSet<A, (B,), U> where
This: 'a,
A: RevGetFieldImpl<'a, This>,
B: RevGetFieldImpl<'a, A::Ty>,
A::Ty: 'a,
Self: RevFieldErr<This, Ty = B::Ty>,
A::Err: IntoFieldErr<Self::Err>,
B::Err: IntoFieldErr<Self::Err>,
[src]
This: 'a,
A: RevGetFieldImpl<'a, This>,
B: RevGetFieldImpl<'a, A::Ty>,
A::Ty: 'a,
Self: RevFieldErr<This, Ty = B::Ty>,
A::Err: IntoFieldErr<Self::Err>,
B::Err: IntoFieldErr<Self::Err>,
impl<'a, This: ?Sized, A, B, U> RevGetFieldMutImpl<'a, This> for NestedFieldPathSet<A, (B,), U> where
This: 'a,
A: RevGetFieldMutImpl<'a, This>,
B: RevGetFieldMutImpl<'a, A::Ty>,
A::Ty: 'a,
Self: RevFieldErr<This, Ty = B::Ty>,
A::Err: IntoFieldErr<Self::Err>,
B::Err: IntoFieldErr<Self::Err>,
[src]
This: 'a,
A: RevGetFieldMutImpl<'a, This>,
B: RevGetFieldMutImpl<'a, A::Ty>,
A::Ty: 'a,
Self: RevFieldErr<This, Ty = B::Ty>,
A::Err: IntoFieldErr<Self::Err>,
B::Err: IntoFieldErr<Self::Err>,
fn rev_get_field_mut(
self,
this: &'a mut This
) -> Result<&'a mut B::Ty, Self::Err>
[src]
self,
this: &'a mut This
) -> Result<&'a mut B::Ty, Self::Err>
unsafe fn rev_get_field_raw_mut(
self,
this: *mut This
) -> Result<*mut B::Ty, Self::Err>
[src]
self,
this: *mut This
) -> Result<*mut B::Ty, Self::Err>
impl<'a, F, S, U, This: ?Sized, Mid: ?Sized, OutTy, OutErr> RevGetMultiFieldImpl<'a, This> for NestedFieldPathSet<F, S, U> where
F: RevGetFieldImpl<'a, This, Ty = Mid, Err = OutErr>,
FieldPathSet<S, U>: RevGetMultiFieldImpl<'a, Mid, UnnormFields = OutTy>,
OutErr: IsFieldErr,
This: 'a,
Mid: 'a,
OutTy: 'a + NormalizeFields,
NestedFieldPathSetOutput<OutTy, OutErr>: 'a + NormalizeFields,
[src]
F: RevGetFieldImpl<'a, This, Ty = Mid, Err = OutErr>,
FieldPathSet<S, U>: RevGetMultiFieldImpl<'a, Mid, UnnormFields = OutTy>,
OutErr: IsFieldErr,
This: 'a,
Mid: 'a,
OutTy: 'a + NormalizeFields,
NestedFieldPathSetOutput<OutTy, OutErr>: 'a + NormalizeFields,
type UnnormFields = NestedFieldPathSetOutput<OutTy, OutErr>
A collection of Results<&'a _,_>
s referencing fields.
fn rev_get_multi_field_impl(
self,
this: &'a This
) -> NestedFieldPathSetOutput<OutTy, OutErr>
[src]
self,
this: &'a This
) -> NestedFieldPathSetOutput<OutTy, OutErr>
impl<'a, F, S, This: ?Sized, Mid: ?Sized, OutTy, OutRawTy, OutErr> RevGetMultiFieldMutImpl<'a, This> for NestedFieldPathSet<F, S, UniquePaths> where
F: RevGetFieldMutImpl<'a, This, Ty = Mid, Err = OutErr>,
FieldPathSet<S, UniquePaths>: RevGetMultiFieldMutImpl<'a, Mid, UnnormFieldsMut = OutTy, UnnormFieldsRawMut = OutRawTy>,
This: 'a,
OutErr: IsFieldErr,
Mid: 'a,
OutTy: 'a + NormalizeFields,
OutRawTy: 'a + NormalizeFields,
NestedFieldPathSetOutput<OutTy, OutErr>: 'a + NormalizeFields,
NestedFieldPathSetOutput<OutRawTy, OutErr>: 'a + NormalizeFields,
[src]
F: RevGetFieldMutImpl<'a, This, Ty = Mid, Err = OutErr>,
FieldPathSet<S, UniquePaths>: RevGetMultiFieldMutImpl<'a, Mid, UnnormFieldsMut = OutTy, UnnormFieldsRawMut = OutRawTy>,
This: 'a,
OutErr: IsFieldErr,
Mid: 'a,
OutTy: 'a + NormalizeFields,
OutRawTy: 'a + NormalizeFields,
NestedFieldPathSetOutput<OutTy, OutErr>: 'a + NormalizeFields,
NestedFieldPathSetOutput<OutRawTy, OutErr>: 'a + NormalizeFields,
type UnnormFieldsMut = NestedFieldPathSetOutput<OutTy, OutErr>
This is usually a tuple of Result<&mut _,E: IsFieldErr>
s.
type UnnormFieldsRawMut = NestedFieldPathSetOutput<OutRawTy, OutErr>
This is usually a tuple of Result<*mut _,E: IsFieldErr>
s.
fn rev_get_multi_field_mut_impl(
self,
this: &'a mut This
) -> NestedFieldPathSetOutput<OutTy, OutErr>
[src]
self,
this: &'a mut This
) -> NestedFieldPathSetOutput<OutTy, OutErr>
unsafe fn rev_get_multi_field_raw_mut_impl(
self,
this: *mut This
) -> NestedFieldPathSetOutput<OutRawTy, OutErr>
[src]
self,
this: *mut This
) -> NestedFieldPathSetOutput<OutRawTy, OutErr>
impl<This, A, B, U> RevIntoFieldImpl<This> for NestedFieldPathSet<A, (B,), U> where
This: ?Sized,
A: RevIntoFieldImpl<This>,
B: RevIntoFieldImpl<A::Ty>,
A::Ty: Sized,
Self: RevFieldErr<This, Ty = B::Ty>,
A::Err: IntoFieldErr<Self::Err>,
B::Err: IntoFieldErr<Self::Err>,
[src]
This: ?Sized,
A: RevIntoFieldImpl<This>,
B: RevIntoFieldImpl<A::Ty>,
A::Ty: Sized,
Self: RevFieldErr<This, Ty = B::Ty>,
A::Err: IntoFieldErr<Self::Err>,
B::Err: IntoFieldErr<Self::Err>,
fn rev_into_field(self, this: This) -> Result<B::Ty, Self::Err> where
This: Sized,
B::Ty: Sized,
[src]
This: Sized,
B::Ty: Sized,
impl<F, S, This, Mid, OutTy, OutErr> RevIntoMultiFieldImpl<This> for NestedFieldPathSet<F, S, UniquePaths> where
F: RevIntoFieldImpl<This, Ty = Mid, Err = OutErr>,
FieldPathSet<S, UniquePaths>: RevIntoMultiFieldImpl<Mid, UnnormIntoFields = OutTy>,
OutTy: NormalizeFields,
OutErr: IsFieldErr,
NestedFieldPathSetOutput<OutTy, OutErr>: NormalizeFields,
[src]
F: RevIntoFieldImpl<This, Ty = Mid, Err = OutErr>,
FieldPathSet<S, UniquePaths>: RevIntoMultiFieldImpl<Mid, UnnormIntoFields = OutTy>,
OutTy: NormalizeFields,
OutErr: IsFieldErr,
NestedFieldPathSetOutput<OutTy, OutErr>: NormalizeFields,
type UnnormIntoFields = NestedFieldPathSetOutput<OutTy, OutErr>
This is usually a tuple of Result<_, E: IsFieldErr>
s.
fn rev_into_multi_field_impl(self, this: This) -> Self::UnnormIntoFields
[src]
Auto Trait Implementations
impl<F, S, U> RefUnwindSafe for NestedFieldPathSet<F, S, U> where
F: RefUnwindSafe,
S: RefUnwindSafe,
U: RefUnwindSafe,
F: RefUnwindSafe,
S: RefUnwindSafe,
U: RefUnwindSafe,
impl<F, S, U> Send for NestedFieldPathSet<F, S, U> where
F: Send,
S: Send,
U: Send,
F: Send,
S: Send,
U: Send,
impl<F, S, U> Sync for NestedFieldPathSet<F, S, U> where
F: Sync,
S: Sync,
U: Sync,
F: Sync,
S: Sync,
U: Sync,
impl<F, S, U> Unpin for NestedFieldPathSet<F, S, U> where
F: Unpin,
S: Unpin,
U: Unpin,
F: Unpin,
S: Unpin,
U: Unpin,
impl<F, S, U> UnwindSafe for NestedFieldPathSet<F, S, U> where
F: UnwindSafe,
S: UnwindSafe,
U: UnwindSafe,
F: UnwindSafe,
S: UnwindSafe,
U: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<This, T> Array0<T> for This where
This: ?Sized,
[src]
This: ?Sized,
impl<This, V, T> Array0Variant<T, V> for This where
This: ?Sized,
[src]
This: ?Sized,
impl<This, T> ArrayMove0<T> for This where
This: ?Sized,
[src]
This: ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<This, T> IntoStructural<T> for This where
T: FromStructural<This>,
[src]
T: FromStructural<This>,
fn into_structural(Self) -> T
[src]
impl<'a, Path, This> OptRevGetField<'a, This> for Path where
Path: RevGetFieldImpl<'a, This, Err = FailedAccess>,
[src]
Path: RevGetFieldImpl<'a, This, Err = FailedAccess>,
impl<'a, Path, This> OptRevGetFieldMut<'a, This> for Path where
Path: RevGetFieldMutImpl<'a, This, Err = FailedAccess>,
[src]
Path: RevGetFieldMutImpl<'a, This, Err = FailedAccess>,
impl<Path, This> OptRevIntoField<This> for Path where
Path: RevIntoFieldImpl<This, Err = FailedAccess>,
[src]
Path: RevIntoFieldImpl<This, Err = FailedAccess>,
impl<'a, Path, This> OptRevIntoFieldMut<'a, This> for Path where
Path: OptRevIntoField<This> + OptRevGetFieldMut<'a, This>,
[src]
Path: OptRevIntoField<This> + OptRevGetFieldMut<'a, This>,
impl<'a, Path, This> OptRevIntoFieldRef<'a, This> for Path where
Path: OptRevIntoField<This> + OptRevGetFieldMut<'a, This>,
[src]
Path: OptRevIntoField<This> + OptRevGetFieldMut<'a, This>,
impl<'a, Path, This> RevGetField<'a, This> for Path where
Path: RevGetFieldImpl<'a, This, Err = InfallibleAccess>,
[src]
Path: RevGetFieldImpl<'a, This, Err = InfallibleAccess>,
impl<'a, Path, This> RevGetFieldMut<'a, This> for Path where
Path: RevGetFieldMutImpl<'a, This, Err = InfallibleAccess>,
[src]
Path: RevGetFieldMutImpl<'a, This, Err = InfallibleAccess>,
impl<'a, This, Path> RevGetMultiField<'a, This> for Path where
Path: RevGetMultiFieldImpl<'a, This>,
This: 'a + ?Sized,
[src]
Path: RevGetMultiFieldImpl<'a, This>,
This: 'a + ?Sized,
type Fields = <<Path as RevGetMultiFieldImpl<'a, This>>::UnnormFields as NormalizeFields>::Output
This is usually a tuple of Option<&_>
s and &_
s.
fn rev_get_multi_field(
Self,
&'a This
) -> <Path as RevGetMultiField<'a, This>>::Fields
[src]
Self,
&'a This
) -> <Path as RevGetMultiField<'a, This>>::Fields
impl<'a, This, Path> RevGetMultiFieldMut<'a, This> for Path where
Path: RevGetMultiFieldMutImpl<'a, This>,
This: 'a + ?Sized,
[src]
Path: RevGetMultiFieldMutImpl<'a, This>,
This: 'a + ?Sized,
type FieldsMut = <<Path as RevGetMultiFieldMutImpl<'a, This>>::UnnormFieldsMut as NormalizeFields>::Output
This is usually a tuple of Option<&mut _>
s and &mut _
s.
type FieldsRawMut = <<Path as RevGetMultiFieldMutImpl<'a, This>>::UnnormFieldsRawMut as NormalizeFields>::Output
This is usually a tuple of Option<*mut _>
s and *mut _
s.
fn rev_get_multi_field_mut(
Self,
&'a mut This
) -> <Path as RevGetMultiFieldMut<'a, This>>::FieldsMut
[src]
Self,
&'a mut This
) -> <Path as RevGetMultiFieldMut<'a, This>>::FieldsMut
unsafe fn rev_get_multi_field_raw_mut(
Self,
*mut This
) -> <Path as RevGetMultiFieldMut<'a, This>>::FieldsRawMut
[src]
Self,
*mut This
) -> <Path as RevGetMultiFieldMut<'a, This>>::FieldsRawMut
impl<Path, This> RevIntoField<This> for Path where
Path: RevIntoFieldImpl<This, Err = InfallibleAccess>,
[src]
Path: RevIntoFieldImpl<This, Err = InfallibleAccess>,
impl<'a, Path, This> RevIntoFieldMut<'a, This> for Path where
Path: RevIntoField<This> + RevGetFieldMut<'a, This>,
[src]
Path: RevIntoField<This> + RevGetFieldMut<'a, This>,
impl<'a, Path, This> RevIntoFieldRef<'a, This> for Path where
Path: RevIntoField<This> + RevGetFieldMut<'a, This>,
[src]
Path: RevIntoField<This> + RevGetFieldMut<'a, This>,
impl<This, Path> RevIntoMultiField<This> for Path where
Path: RevIntoMultiFieldImpl<This>,
[src]
Path: RevIntoMultiFieldImpl<This>,
type IntoFields = <<Path as RevIntoMultiFieldImpl<This>>::UnnormIntoFields as NormalizeFields>::Output
This is usually a tuple of Option<T>
s and T
s.
fn rev_into_multi_field(
Self,
This
) -> <Path as RevIntoMultiField<This>>::IntoFields
[src]
Self,
This
) -> <Path as RevIntoMultiField<This>>::IntoFields
impl<T> SelfOps for T where
T: ?Sized,
[src]
T: ?Sized,
const T: PhantomData<fn() -> Self>
[src]
const T_D: PhantomData<Self>
[src]
fn assert_ty(self, _other: PhantomData<fn() -> Self>) -> Self
[src]
fn assert_ty_ref(&self, _other: PhantomData<fn() -> Self>) -> &Self
[src]
fn assert_ty_mut(&mut self, _other: PhantomData<fn() -> Self>) -> &mut Self
[src]
fn ty_(&self) -> PhantomData<fn() -> Self>
[src]
fn ty_d(&self) -> PhantomData<Self>
[src]
fn ty_inv(&self) -> PhantomData<fn(Self) -> Self>
[src]
fn ty_inv_ref(&self) -> PhantomData<Cell<&Self>>
[src]
fn eq_id(&self, other: &Self) -> bool
[src]
fn piped<F, U>(self, f: F) -> U where
F: FnOnce(Self) -> U,
[src]
F: FnOnce(Self) -> U,
fn piped_ref<'a, F, U>(&'a self, f: F) -> U where
F: FnOnce(&'a Self) -> U,
[src]
F: FnOnce(&'a Self) -> U,
fn piped_mut<'a, F, U>(&'a mut self, f: F) -> U where
F: FnOnce(&'a mut Self) -> U,
[src]
F: FnOnce(&'a mut Self) -> U,
fn mutated<F>(self, f: F) -> Self where
F: FnOnce(&mut Self),
[src]
F: FnOnce(&mut Self),
fn observe<F>(self, f: F) -> Self where
F: FnOnce(&Self),
[src]
F: FnOnce(&Self),
fn into_<T>(self, PhantomData<fn() -> T>) -> T where
Self: Into<T>,
[src]
Self: Into<T>,
fn as_ref_<T>(&self) -> &T where
Self: AsRef<T>,
T: ?Sized,
[src]
Self: AsRef<T>,
T: ?Sized,
fn as_mut_<T>(&mut self) -> &mut T where
Self: AsMut<T>,
T: ?Sized,
[src]
Self: AsMut<T>,
T: ?Sized,
fn drop_(self)
[src]
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The error type returned when the conversion fails.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<This, T> TryIntoStructural<T> for This where
T: TryFromStructural<This>,
[src]
T: TryFromStructural<This>,
type Error = <T as TryFromStructural<This>>::Error
The error parameter of TryFromError
, returned from try_into_structural
on conversion error. Read more
fn try_into_structural(
Self
) -> Result<T, TryFromError<This, <This as TryIntoStructural<T>>::Error>>
[src]
Self
) -> Result<T, TryFromError<This, <This as TryIntoStructural<T>>::Error>>
impl<T> TypeIdentity for T where
T: ?Sized,
[src]
T: ?Sized,
type Type = T
The same type as Self. Read more
fn into_type_val(self) -> Self::Type where
Self::Type: Sized,
[src]
Self::Type: Sized,
fn into_type_ref(&self) -> &Self::Type
[src]
fn into_type_mut(&mut self) -> &mut Self::Type
[src]
fn into_type_box(self: Box<Self>) -> Box<Self::Type>
[src]
fn into_type_arc(this: Arc<Self>) -> Arc<Self::Type>
[src]
fn into_type_rc(this: Rc<Self>) -> Rc<Self::Type>
[src]
fn from_type_val(this: Self::Type) -> Self where
Self::Type: Sized,
[src]
Self::Type: Sized,