[][src]Trait structural::field::rev_get_field::RevMoveOutFieldImpl

pub unsafe trait RevMoveOutFieldImpl<This: ?Sized>: RevIntoFieldImpl<This> + ShallowFieldPath {
    unsafe fn rev_move_out_field(
        self,
        this: &mut This,
        moved: &mut MovedOutFields
    ) -> Result<Self::Ty, Self::Err>
    where
        Self::Ty: Sized
; }

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 and IntoVariantField traits.

  • Be implemented following the safety requirements of the IntoField (if it's moving out a struct field) or IntoVariantField (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

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.

Loading content...

Implementors

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

impl<This, T, U> RevMoveOutFieldImpl<This> for FieldPathSet<(T,), U> where
    This: ?Sized,
    T: RevMoveOutFieldImpl<This>, 
[src]

impl<This: ?Sized, T> RevMoveOutFieldImpl<This> for TStr<T> where
    This: IntoField<Self>, 
[src]

impl<This: ?Sized, _V, _F> RevMoveOutFieldImpl<This> for VariantField<_V, _F> where
    This: IntoVariantField<_V, _F>, 
[src]

Loading content...