[−][src]Struct structural::mut_ref::MutRef
A wrapper type that associates a mutable raw pointer with a lifetime.
Motivation
This type was declared to pass a mutable-reference-like type to multiple methods to borrow multiple fields individually. If those methods took in mutable references it would cause undefined behavior to borrow multiple fields mutably, since each call borrows the entire data structure.
Fields
ptr: *mut T
Methods
impl<'a, T: ?Sized> MutRef<'a, T>
[src]
pub fn new(mut_ref: &'a mut T) -> Self
[src]
Constructs a MutRef from a mutable reference.
pub fn from_ptr(ptr: *mut T) -> Self
[src]
Constructs a MutRef from a mutable pointer.
pub fn cast<U>(self) -> MutRef<'a, U>
[src]
An unchecked cast from MutRef<'a,T>
to MutRef<'a,U>
.
Trait Implementations
impl<'a, T: ?Sized> From<&'a mut T> for MutRef<'a, T>
[src]
impl<'a, T: ?Sized> Clone for MutRef<'a, T>
[src]
fn clone(&self) -> Self
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<'a, T: ?Sized> Copy for MutRef<'a, T>
[src]
impl<'a, T: Debug + ?Sized> Debug for MutRef<'a, T>
[src]
Auto Trait Implementations
impl<'a, T> !Send for MutRef<'a, T>
impl<'a, T> !Sync for MutRef<'a, T>
impl<'a, T: ?Sized> Unpin for MutRef<'a, T>
impl<'a, T> !UnwindSafe for MutRef<'a, T>
impl<'a, T: ?Sized> RefUnwindSafe for MutRef<'a, T> where
T: RefUnwindSafe,
T: RefUnwindSafe,
Blanket Implementations
impl<T> GetFieldExt for T where
T: ?Sized,
[src]
T: ?Sized,
fn field_<FieldName>(&self, _: FieldName) -> &Self::Ty where
Self: GetField<FieldName>,
[src]
Self: GetField<FieldName>,
fn fields<'a, Fields>(&'a self, _: TStringSet<Fields>) -> Fields::MultiTy where
Fields: GetMultiField<'a, Self>,
[src]
Fields: GetMultiField<'a, Self>,
fn field_mut<FieldName>(&mut self, _: FieldName) -> &mut Self::Ty where
Self: GetFieldMut<FieldName>,
[src]
Self: GetFieldMut<FieldName>,
fn fields_mut<'a, Fields>(
&'a mut self,
ms: TStringSet<Fields>
) -> Fields::MultiTy where
Fields: GetMultiFieldMut<'a, Self>,
Self: Sized,
[src]
&'a mut self,
ms: TStringSet<Fields>
) -> Fields::MultiTy where
Fields: GetMultiFieldMut<'a, Self>,
Self: Sized,
fn into_field<FieldName>(self, _: FieldName) -> Self::Ty where
Self: IntoField<FieldName> + Sized,
[src]
Self: IntoField<FieldName> + Sized,
fn box_into_field<FieldName>(self: Box<Self>, _: FieldName) -> Self::Ty where
Self: IntoField<FieldName>,
[src]
Self: IntoField<FieldName>,
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> TypeIdentity for T where
T: ?Sized,
[src]
T: ?Sized,
type Type = T
The same type as Self. Read more
fn into_type_val(self) -> Self::Type where
Self::Type: Sized,
[src]
Self::Type: Sized,
fn into_type_ref(&self) -> &Self::Type
[src]
fn into_type_mut(&mut self) -> &mut Self::Type
[src]
fn into_type_box(self: Box<Self>) -> Box<Self::Type>
[src]
fn into_type_arc(this: Arc<Self>) -> Arc<Self::Type>
[src]
fn into_type_rc(this: Rc<Self>) -> Rc<Self::Type>
[src]
fn from_type_val(this: Self::Type) -> Self where
Self::Type: Sized,
[src]
Self::Type: Sized,
fn from_type_ref(this: &Self::Type) -> &Self
[src]
fn from_type_mut(this: &mut Self::Type) -> &mut Self
[src]
fn from_type_box(this: Box<Self::Type>) -> Box<Self>
[src]
fn from_type_arc(this: Arc<Self::Type>) -> Arc<Self>
[src]
fn from_type_rc(this: Rc<Self::Type>) -> Rc<Self>
[src]
impl<T> SelfOps for T where
T: ?Sized,
[src]
T: ?Sized,
const T: PhantomData<fn() -> Self>
[src]
const T_D: PhantomData<Self>
[src]
fn assert_ty(self, _other: PhantomData<fn() -> Self>) -> Self
[src]
fn assert_ty_ref(&self, _other: PhantomData<fn() -> Self>) -> &Self
[src]
fn assert_ty_mut(&mut self, _other: PhantomData<fn() -> Self>) -> &mut Self
[src]
fn ty_(&self) -> PhantomData<fn() -> Self>
[src]
fn ty_d(&self) -> PhantomData<Self>
[src]
fn ty_inv(&self) -> PhantomData<fn(Self) -> Self>
[src]
fn ty_inv_ref(&self) -> PhantomData<Cell<&Self>>
[src]
fn eq_id(&self, other: &Self) -> bool
[src]
fn piped<F, U>(self, f: F) -> U where
F: FnOnce(Self) -> U,
[src]
F: FnOnce(Self) -> U,
fn piped_ref<'a, F, U>(&'a self, f: F) -> U where
F: FnOnce(&'a Self) -> U,
[src]
F: FnOnce(&'a Self) -> U,
fn piped_mut<'a, F, U>(&'a mut self, f: F) -> U where
F: FnOnce(&'a mut Self) -> U,
[src]
F: FnOnce(&'a mut Self) -> U,
fn mutated<F>(self, f: F) -> Self where
F: FnOnce(&mut Self),
[src]
F: FnOnce(&mut Self),
fn observe<F>(self, f: F) -> Self where
F: FnOnce(&Self),
[src]
F: FnOnce(&Self),
fn into_<T>(self, PhantomData<fn() -> T>) -> T where
Self: Into<T>,
[src]
Self: Into<T>,
fn as_ref_<T>(&self) -> &T where
Self: AsRef<T>,
T: ?Sized,
[src]
Self: AsRef<T>,
T: ?Sized,
fn as_mut_<T>(&mut self) -> &mut T where
Self: AsMut<T>,
T: ?Sized,
[src]
Self: AsMut<T>,
T: ?Sized,
fn drop_(self)
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,