pub struct Const<Part, Reference: HasTarget> { /* private fields */ }
Expand description
A constant (immutable) part of a partial reference.
Trait Implementations§
Source§impl<SomePart, Reference: Copy + HasTarget> Clone for Const<SomePart, Reference>
A reference containing just constant parts is safe to clone.
impl<SomePart, Reference: Copy + HasTarget> Clone for Const<SomePart, Reference>
A reference containing just constant parts is safe to clone.
Source§impl<'a, SomePart: Part, Reference: PartialRef<'a>> PartialRef<'a> for Const<SomePart, Reference>
Extending a valid reference by a constant part is still a valid reference when the reference
target has such a part.
impl<'a, SomePart: Part, Reference: PartialRef<'a>> PartialRef<'a> for Const<SomePart, Reference>
Extending a valid reference by a constant part is still a valid reference when the reference target has such a part.
Source§unsafe fn from_raw(
ptr: *mut <Self::Target as PartialRefTarget>::RawTarget,
) -> Self
unsafe fn from_raw( ptr: *mut <Self::Target as PartialRefTarget>::RawTarget, ) -> Self
Create a partial reference from a raw pointer. Read more
Source§fn get_raw(&self) -> *mut <Self::Target as PartialRefTarget>::RawTarget
fn get_raw(&self) -> *mut <Self::Target as PartialRefTarget>::RawTarget
Access to the underlying raw pointer. Read more
Source§fn borrow<BorrowedRef, SubsetIndex>(&'a mut self) -> BorrowedRefwhere
BorrowedRef: PartialRef<'a, Target = Self::Target>,
Self: HasSubset<'a, BorrowedRef, SubsetIndex>,
fn borrow<BorrowedRef, SubsetIndex>(&'a mut self) -> BorrowedRefwhere
BorrowedRef: PartialRef<'a, Target = Self::Target>,
Self: HasSubset<'a, BorrowedRef, SubsetIndex>,
Partially re-borrows a partial reference. Read more
Source§fn part<FieldPartSpec, FieldPart, PartIndex, FieldType>(
&'a self,
_part: FieldPartSpec,
) -> &'a FieldType
fn part<FieldPartSpec, FieldPart, PartIndex, FieldType>( &'a self, _part: FieldPartSpec, ) -> &'a FieldType
Access a part of the referenced value. Read more
Source§fn part_mut<FieldPartSpec, FieldPart, PartIndex, FieldType>(
&'a mut self,
_part: FieldPartSpec,
) -> &'a mut FieldType
fn part_mut<FieldPartSpec, FieldPart, PartIndex, FieldType>( &'a mut self, _part: FieldPartSpec, ) -> &'a mut FieldType
Mutable access to a part of the referenced value. Read more
Source§fn split_borrow<BorrowedRef, SubsetIndex>(
&'a mut self,
) -> (BorrowedRef, Self::Remainder)where
BorrowedRef: PartialRef<'a, Target = Self::Target>,
Self: HasSubset<'a, BorrowedRef, SubsetIndex>,
fn split_borrow<BorrowedRef, SubsetIndex>(
&'a mut self,
) -> (BorrowedRef, Self::Remainder)where
BorrowedRef: PartialRef<'a, Target = Self::Target>,
Self: HasSubset<'a, BorrowedRef, SubsetIndex>,
Partially re-borrows a partial reference, splitting off the remaining parts. Read more
Source§fn split_part<FieldPartSpec, FieldPart, PartIndex, FieldType>(
&'a mut self,
_part: FieldPartSpec,
) -> (&'a FieldType, Self::Remainder)
fn split_part<FieldPartSpec, FieldPart, PartIndex, FieldType>( &'a mut self, _part: FieldPartSpec, ) -> (&'a FieldType, Self::Remainder)
Access a part of the referenced value, splitting off the remaining parts. Read more
Source§fn split_part_mut<FieldPartSpec, FieldPart, PartIndex, FieldType>(
&'a mut self,
_part: FieldPartSpec,
) -> (&'a mut FieldType, Self::Remainder)
fn split_part_mut<FieldPartSpec, FieldPart, PartIndex, FieldType>( &'a mut self, _part: FieldPartSpec, ) -> (&'a mut FieldType, Self::Remainder)
Mutable access to a part of the referenced value, splitting off the remaining parts. Read more
Source§impl<'a, ContainingPart, PluckedOuter, PluckedInner, Reference, NestedPartIndex, Index, OuterFieldType, ContainingFieldType> PluckConst<'a, Nested<PluckedOuter, PluckedInner>, IndexSplit<NestedPartIndex, Index>> for Const<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: PluckConst<'a, Nested<PluckedOuter, PluckedInner>, Index>,
OuterFieldType: ?Sized + HasPart<PluckedInner> + PartialRefTarget<RawTarget = OuterFieldType>,
Reference: PartialRef<'a>,
Reference::Target: HasPart<ContainingPart>,
(internal) Pluck a constant nested subpart of the constant first part.
impl<'a, ContainingPart, PluckedOuter, PluckedInner, Reference, NestedPartIndex, Index, OuterFieldType, ContainingFieldType> PluckConst<'a, Nested<PluckedOuter, PluckedInner>, IndexSplit<NestedPartIndex, Index>> for Const<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: PluckConst<'a, Nested<PluckedOuter, PluckedInner>, Index>,
OuterFieldType: ?Sized + HasPart<PluckedInner> + PartialRefTarget<RawTarget = OuterFieldType>,
Reference: PartialRef<'a>,
Reference::Target: HasPart<ContainingPart>,
(internal) Pluck a constant nested subpart of the constant first part.
Source§impl<'a, PluckedPart, Reference> PluckConst<'a, PluckedPart, IndexHere> for Const<PluckedPart, Reference>
(internal) Plucks the outermost constant part.
impl<'a, PluckedPart, Reference> PluckConst<'a, PluckedPart, IndexHere> for Const<PluckedPart, Reference>
(internal) Plucks the outermost constant part.
Source§impl<'a, PluckedPart, SkippedPart, Reference, Index> PluckConst<'a, PluckedPart, IndexNext<Index>> for Const<SkippedPart, Reference>
(internal) Skips the constant first part while plucking a constant part.
impl<'a, PluckedPart, SkippedPart, Reference, Index> PluckConst<'a, PluckedPart, IndexNext<Index>> for Const<SkippedPart, Reference>
(internal) Skips the constant first part while plucking a constant 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.
impl<SomePart, Reference: Copy + HasTarget> Copy for Const<SomePart, Reference>
A reference containing just constant parts is safe to clone.
Auto Trait Implementations§
impl<Part, Reference> Freeze for Const<Part, Reference>
impl<Part, Reference> RefUnwindSafe for Const<Part, Reference>where
<<Reference as HasTarget>::Target as PartialRefTarget>::RawTarget: RefUnwindSafe,
Reference: RefUnwindSafe,
Part: RefUnwindSafe,
impl<Part, Reference> !Send for Const<Part, Reference>
impl<Part, Reference> !Sync for Const<Part, Reference>
impl<Part, Reference> Unpin for Const<Part, Reference>
impl<Part, Reference> UnwindSafe for Const<Part, Reference>where
<<Reference as HasTarget>::Target as PartialRefTarget>::RawTarget: RefUnwindSafe,
Reference: UnwindSafe,
Part: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more