[][src]Trait partial_ref::PluckMut

pub unsafe trait PluckMut<'a, PluckedPart, Index>: PartialRef<'a> {
    type Remainder: PartialRef<'a, Target = Self::Target>;
}

(internal) Extracts the mutable part PluckedPart at position Index from the partial reference having this trait, leaving Self::Remainder.

Plucking a mutable part removes it from the remaining reference.

The Index type can be inferred.

Associated Types

type Remainder: PartialRef<'a, Target = Self::Target>

The partial reference left after plucking.

Loading content...

Implementors

impl<'a, ContainingPart, PluckedOuter, PluckedInner, Reference, NestedPartIndex, Index, OuterFieldType, ContainingFieldType> PluckMut<'a, Nested<PluckedOuter, PluckedInner>, IndexSplit<NestedPartIndex, Index>> for Mut<ContainingPart, Reference> where
    PluckedOuter: Part<PartType = Field<OuterFieldType>>,
    PluckedInner: Part,
    ContainingPart: Part<PartType = Field<ContainingFieldType>>,
    ContainingFieldType: SplitIntoParts<'a, ContainingPart, Reference>,
    ContainingFieldType: ?Sized,
    ContainingFieldType::ResultMut: PluckMut<'a, Nested<PluckedOuter, PluckedInner>, Index>,
    OuterFieldType: ?Sized,
    OuterFieldType: HasPart<PluckedInner>,
    OuterFieldType: PartialRefTarget<RawTarget = OuterFieldType>,
    Reference: PartialRef<'a>,
    Reference::Target: HasPart<ContainingPart>,
    ContainingPart: ContainsNestedPart<PluckedOuter, NestedPartIndex>, 
[src]

(internal) Pluck a mutable nested subpart of the mutable first part.

This leaves all other subparts in the remaining reference.

type Remainder = <ContainingFieldType::ResultMut as PluckMut<'a, Nested<PluckedOuter, PluckedInner>, Index>>::Remainder

impl<'a, PluckedPart, Reference> PluckMut<'a, PluckedPart, IndexHere> for Mut<PluckedPart, Reference> where
    PluckedPart: Part,
    Reference: PartialRef<'a>,
    Reference::Target: HasPart<PluckedPart>, 
[src]

(internal) Plucks the first mutable part.

type Remainder = Reference

impl<'a, PluckedPart, SkippedPart, Reference, Index> PluckMut<'a, PluckedPart, IndexNext<Index>> for Const<SkippedPart, Reference> where
    PluckedPart: Part,
    SkippedPart: Part,
    Reference::Target: HasPart<PluckedPart>,
    Reference::Target: HasPart<SkippedPart>,
    Reference: PluckMut<'a, PluckedPart, Index>, 
[src]

(internal) Skips the constant first part while plucking a mutable part.

type Remainder = Const<SkippedPart, Reference::Remainder>

impl<'a, PluckedPart, SkippedPart, Reference, Index> PluckMut<'a, PluckedPart, IndexNext<Index>> for Mut<SkippedPart, Reference> where
    PluckedPart: Part,
    SkippedPart: Part,
    Reference::Target: HasPart<PluckedPart>,
    Reference::Target: HasPart<SkippedPart>,
    Reference: PluckMut<'a, PluckedPart, Index>, 
[src]

(internal) Skips the mutable first part while plucking a mutable part.

type Remainder = Mut<SkippedPart, Reference::Remainder>

Loading content...