PluckMut

Trait PluckMut 

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

(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.

Required Associated Types§

Source

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

The partial reference left after plucking.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

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>> + ContainsNestedPart<PluckedOuter, NestedPartIndex>, ContainingFieldType: SplitIntoParts<'a, ContainingPart, Reference> + ?Sized, ContainingFieldType::ResultMut: PluckMut<'a, Nested<PluckedOuter, PluckedInner>, Index>, OuterFieldType: ?Sized + HasPart<PluckedInner> + PartialRefTarget<RawTarget = OuterFieldType>, Reference: PartialRef<'a>, Reference::Target: HasPart<ContainingPart>,

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

This leaves all other subparts in the remaining reference.

Source§

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

Source§

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

(internal) Plucks the first mutable part.

Source§

type Remainder = Reference

Source§

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

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

Source§

type Remainder = Const<SkippedPart, <Reference as PluckMut<'a, PluckedPart, Index>>::Remainder>

Source§

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

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

Source§

type Remainder = Mut<SkippedPart, <Reference as PluckMut<'a, PluckedPart, Index>>::Remainder>