pub struct InteriorMut<'tcx> {
ignored_def_ids: FxHashSet<DefId>,
ignore_pointers: bool,
tys: FxHashMap<Ty<'tcx>, Option<&'tcx List<Ty<'tcx>>>>,
}
Expand description
Helper to check if given type has inner mutability such as std::cell::Cell
or
std::cell::RefCell
.
Fields§
§ignored_def_ids: FxHashSet<DefId>
§ignore_pointers: bool
§tys: FxHashMap<Ty<'tcx>, Option<&'tcx List<Ty<'tcx>>>>
Implementations§
Source§impl<'tcx> InteriorMut<'tcx>
impl<'tcx> InteriorMut<'tcx>
pub fn new(tcx: TyCtxt<'tcx>, ignore_interior_mutability: &[String]) -> Self
pub fn without_pointers( tcx: TyCtxt<'tcx>, ignore_interior_mutability: &[String], ) -> Self
Sourcepub fn interior_mut_ty_chain(
&mut self,
cx: &LateContext<'tcx>,
ty: Ty<'tcx>,
) -> Option<&'tcx List<Ty<'tcx>>>
pub fn interior_mut_ty_chain( &mut self, cx: &LateContext<'tcx>, ty: Ty<'tcx>, ) -> Option<&'tcx List<Ty<'tcx>>>
Check if given type has interior mutability such as std::cell::Cell
or
std::cell::RefCell
etc. and if it does, returns a chain of types that causes
this type to be interior mutable
Sourcepub fn is_interior_mut_ty(
&mut self,
cx: &LateContext<'tcx>,
ty: Ty<'tcx>,
) -> bool
pub fn is_interior_mut_ty( &mut self, cx: &LateContext<'tcx>, ty: Ty<'tcx>, ) -> bool
Check if given type has interior mutability such as std::cell::Cell
or
std::cell::RefCell
etc.
Trait Implementations§
Source§impl<'tcx> Debug for InteriorMut<'tcx>
impl<'tcx> Debug for InteriorMut<'tcx>
Source§impl<'tcx> Default for InteriorMut<'tcx>
impl<'tcx> Default for InteriorMut<'tcx>
Source§fn default() -> InteriorMut<'tcx>
fn default() -> InteriorMut<'tcx>
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl<'tcx> Freeze for InteriorMut<'tcx>
impl<'tcx> !RefUnwindSafe for InteriorMut<'tcx>
impl<'tcx> Send for InteriorMut<'tcx>
impl<'tcx> Sync for InteriorMut<'tcx>
impl<'tcx> Unpin for InteriorMut<'tcx>
impl<'tcx> !UnwindSafe for InteriorMut<'tcx>
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
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreLayout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 72 bytes