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§
Sourcetype Remainder: PartialRef<'a, Target = Self::Target>
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.
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§impl<'a, PluckedPart, Reference> PluckMut<'a, PluckedPart, IndexHere> for Mut<PluckedPart, Reference>
(internal) Plucks the first mutable part.
impl<'a, PluckedPart, Reference> PluckMut<'a, PluckedPart, IndexHere> for Mut<PluckedPart, Reference>
(internal) Plucks the first mutable part.
Source§impl<'a, PluckedPart, SkippedPart, Reference, Index> PluckMut<'a, PluckedPart, IndexNext<Index>> for Const<SkippedPart, Reference>
(internal) Skips the constant first part while plucking a mutable part.
impl<'a, PluckedPart, SkippedPart, Reference, Index> PluckMut<'a, PluckedPart, IndexNext<Index>> for Const<SkippedPart, Reference>
(internal) Skips the constant first part while plucking a mutable part.