[−][src]Trait structural::field::rev_get_field::RevMoveOutFieldImpl
Like Into*Field::move_out_*field_
,except that the parameters are reversed,
This
is the type we are accessing,and Self
is a field path.
This is used by the implementations of the RevIntoMultiFieldImpl
trait.
Safety
Implementors of this traits must do any of:
-
Delegate their implementations to the
IntoField
andIntoVariantField
traits. -
Be implemented following the safety requirements of the
IntoField
(if it's moving out a struct field) orIntoVariantField
(if it's moving out an enum field).
Required methods
unsafe fn rev_move_out_field(
self,
this: &mut This,
moved: &mut MovedOutFields
) -> Result<Self::Ty, Self::Err> where
Self::Ty: Sized,
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
.
Safety
The same instance of MovedOutFields
must be passed to every call to
rev_move_out_field
on the same instance of this
,
as well as not mutating that MovedOutFields
instance outside of
rev_move_out_field
with the same This
parameter.
Each field must be moved with any method at most once on the same instance of This
.
Implementors
impl<This, F0> RevMoveOutFieldImpl<This> for NestedFieldPath<(F0,)> where
This: ?Sized,
F0: RevMoveOutFieldImpl<This>,
[src]
This: ?Sized,
F0: RevMoveOutFieldImpl<This>,
unsafe fn rev_move_out_field(
self,
this: &mut This,
moved: &mut MovedOutFields
) -> Result<Self::Ty, Self::Err> where
Self::Ty: Sized,
[src]
self,
this: &mut This,
moved: &mut MovedOutFields
) -> Result<Self::Ty, Self::Err> where
Self::Ty: Sized,
impl<This, T, U> RevMoveOutFieldImpl<This> for FieldPathSet<(T,), U> where
This: ?Sized,
T: RevMoveOutFieldImpl<This>,
[src]
This: ?Sized,
T: RevMoveOutFieldImpl<This>,
unsafe fn rev_move_out_field(
self,
this: &mut This,
moved: &mut MovedOutFields
) -> Result<Self::Ty, Self::Err> where
T::Ty: Sized,
[src]
self,
this: &mut This,
moved: &mut MovedOutFields
) -> Result<Self::Ty, Self::Err> where
T::Ty: Sized,
impl<This: ?Sized, T> RevMoveOutFieldImpl<This> for TStr<T> where
This: IntoField<Self>,
[src]
This: IntoField<Self>,
unsafe fn rev_move_out_field(
self,
this: &mut This,
moved: &mut MovedOutFields
) -> Result<Self::Ty, Self::Err> where
Self::Ty: Sized,
[src]
self,
this: &mut This,
moved: &mut MovedOutFields
) -> Result<Self::Ty, Self::Err> where
Self::Ty: Sized,
impl<This: ?Sized, _V, _F> RevMoveOutFieldImpl<This> for VariantField<_V, _F> where
This: IntoVariantField<_V, _F>,
[src]
This: IntoVariantField<_V, _F>,
unsafe fn rev_move_out_field(
self,
this: &mut This,
moved: &mut MovedOutFields
) -> Result<This::Ty, FailedAccess> where
This::Ty: Sized,
[src]
self,
this: &mut This,
moved: &mut MovedOutFields
) -> Result<This::Ty, FailedAccess> where
This::Ty: Sized,