BorrowPessimize

Trait BorrowPessimize 

Source
pub trait BorrowPessimize: PessimizeCast {
    type BorrowedPessimize: Pessimize;

    // Required methods
    fn with_pessimize(&self, f: impl FnOnce(&Self::BorrowedPessimize));
    fn assume_accessed_impl(&mut self);
}
Expand description

Extract references to Pessimize values from references to Self (Pessimize impl helper)

Required Associated Types§

Source

type BorrowedPessimize: Pessimize

Pessimize type to which a reference can be extracted from &self

Required Methods§

Source

fn with_pessimize(&self, f: impl FnOnce(&Self::BorrowedPessimize))

Extract an &Pessimized from &self and all the provided operation on it.

In the common case where Self: Copy, you can implement this by calling pessimize::impl_with_pessimize_via_copy.

Source

fn assume_accessed_impl(&mut self)

Extract an &mut Pessimized from &mut self, call assume_accessed on it, and propagate any “changes” back to the original &mut self.

In the common case where there is a cheap way to go from an &mut Self to a Self or Self::Pessimized, you can implement this by calling one of the pessimize::impl_assume_accessed_via_xyz functions.

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.

Implementations on Foreign Types§

Source§

impl BorrowPessimize for bool

Source§

impl BorrowPessimize for char

Source§

impl BorrowPessimize for String

Available on crate feature alloc only.
Source§

impl BorrowPessimize for Layout

Source§

impl BorrowPessimize for float64x1x2_t

Available with target feature neon only.
Source§

impl BorrowPessimize for float64x1x3_t

Available with target feature neon only.
Source§

impl BorrowPessimize for float64x1x4_t

Available with target feature neon only.
Source§

impl BorrowPessimize for float64x2x2_t

Available with target feature neon only.
Source§

impl BorrowPessimize for float64x2x3_t

Available with target feature neon only.
Source§

impl BorrowPessimize for float64x2x4_t

Available with target feature neon only.
Source§

impl BorrowPessimize for Simd<f64, 1>

Available on crate feature nightly and target feature neon only.
Source§

impl BorrowPessimize for Simd<f64, 2>

Available on crate feature nightly and target feature neon only.
Source§

impl BorrowPessimize for Error

Source§

impl BorrowPessimize for PhantomPinned

Source§

impl BorrowPessimize for Ipv4Addr

Available on crate feature std only.
Source§

impl BorrowPessimize for SocketAddrV4

Available on crate feature std only.
Source§

impl BorrowPessimize for RangeFull

Source§

impl BorrowPessimize for AtomicBool

Available on target_has_atomic=8 only.
Source§

impl BorrowPessimize for AtomicI8

Available on target_has_atomic=8 only.
Source§

impl BorrowPessimize for AtomicI16

Available on target_has_atomic=16 only.
Source§

impl BorrowPessimize for AtomicI32

Available on target_has_atomic=32 only.
Source§

impl BorrowPessimize for AtomicI64

Available on target_has_atomic=64 and 64-bit only.
Source§

impl BorrowPessimize for AtomicIsize

Available on target_has_atomic=ptr only.
Source§

impl BorrowPessimize for AtomicU8

Available on target_has_atomic=8 only.
Source§

impl BorrowPessimize for AtomicU16

Available on target_has_atomic=16 only.
Source§

impl BorrowPessimize for AtomicU32

Available on target_has_atomic=32 only.
Source§

impl BorrowPessimize for AtomicU64

Available on target_has_atomic=64 and 64-bit only.
Source§

impl BorrowPessimize for AtomicUsize

Available on target_has_atomic=ptr only.
Source§

impl BorrowPessimize for OsString

Available on crate feature std and (Unix or WASI) only.
Source§

impl BorrowPessimize for File

Available on crate feature std and (Unix or Windows) only.
Source§

impl BorrowPessimize for Permissions

Available on crate feature std and Unix only.
Source§

impl BorrowPessimize for Empty

Available on crate feature std only.
Source§

impl BorrowPessimize for Repeat

Available on crate feature std only.
Source§

impl BorrowPessimize for Sink

Available on crate feature std only.
Source§

impl BorrowPessimize for TcpListener

Available on crate feature std and (Unix or Windows) only.
Source§

impl BorrowPessimize for TcpStream

Available on crate feature std and (Unix or Windows) only.
Source§

impl BorrowPessimize for UdpSocket

Available on crate feature std and (Unix or Windows) only.
Source§

impl BorrowPessimize for PathBuf

Available on crate feature std and (Unix or WASI) only.
Source§

impl BorrowPessimize for ExitStatus

Available on (crate feature std or test) and Unix only.
Source§

impl BorrowPessimize for Output

Available on (crate feature std or test) and Unix only.
Source§

impl BorrowPessimize for NonZeroI8

Source§

impl BorrowPessimize for NonZeroI16

Source§

impl BorrowPessimize for NonZeroI32

Source§

impl BorrowPessimize for NonZeroI64

Source§

impl BorrowPessimize for NonZeroIsize

Source§

impl BorrowPessimize for NonZeroU8

Source§

impl BorrowPessimize for NonZeroU16

Source§

impl BorrowPessimize for NonZeroU32

Source§

impl BorrowPessimize for NonZeroU64

Source§

impl BorrowPessimize for NonZeroUsize

Source§

impl<'a, T: ?Sized> BorrowPessimize for &'a T
where NonNull<T>: Pessimize,

Source§

impl<'a, T: ?Sized> BorrowPessimize for &'a mut T
where NonNull<T>: Pessimize,

Source§

impl<Idx: Clone + Pessimize> BorrowPessimize for Range<Idx>

Source§

impl<Idx: Clone + Pessimize> BorrowPessimize for RangeFrom<Idx>

Source§

impl<Idx: Clone + Pessimize> BorrowPessimize for RangeInclusive<Idx>

Source§

impl<Idx: Clone + Pessimize> BorrowPessimize for RangeTo<Idx>

Source§

impl<Idx: Clone + Pessimize> BorrowPessimize for RangeToInclusive<Idx>

Source§

impl<R> BorrowPessimize for fn() -> R

Source§

impl<R, A1, A2, A3, A4, A5, A6, A7, A8> BorrowPessimize for fn(A1, A2, A3, A4, A5, A6, A7, A8) -> R

Source§

impl<R, A2, A3, A4, A5, A6, A7, A8> BorrowPessimize for fn(A2, A3, A4, A5, A6, A7, A8) -> R

Source§

impl<R, A3, A4, A5, A6, A7, A8> BorrowPessimize for fn(A3, A4, A5, A6, A7, A8) -> R

Source§

impl<R, A4, A5, A6, A7, A8> BorrowPessimize for fn(A4, A5, A6, A7, A8) -> R

Source§

impl<R, A5, A6, A7, A8> BorrowPessimize for fn(A5, A6, A7, A8) -> R

Source§

impl<R, A6, A7, A8> BorrowPessimize for fn(A6, A7, A8) -> R

Source§

impl<R, A7, A8> BorrowPessimize for fn(A7, A8) -> R

Source§

impl<R, A8> BorrowPessimize for fn(A8) -> R

Source§

impl<T> BorrowPessimize for Vec<T>

Available on crate feature alloc only.
Source§

impl<T> BorrowPessimize for Empty<T>

Source§

impl<T> BorrowPessimize for PhantomData<T>

Source§

impl<T> BorrowPessimize for AtomicPtr<T>

Available on target_has_atomic=ptr only.
Source§

impl<T: Clone + Pessimize> BorrowPessimize for Repeat<T>

Source§

impl<T: Pessimize> BorrowPessimize for [T; 1]

Source§

impl<T: Pessimize> BorrowPessimize for UnsafeCell<T>

Source§

impl<T: Pessimize> BorrowPessimize for Reverse<T>

Source§

impl<T: Pessimize> BorrowPessimize for Once<T>

Source§

impl<T: Pessimize> BorrowPessimize for ManuallyDrop<T>

Source§

impl<T: Pessimize> BorrowPessimize for Wrapping<T>

Source§

impl<T: Pessimize> BorrowPessimize for AssertUnwindSafe<T>

Source§

impl<T: ?Sized + Unpin, P: Deref<Target = T> + DerefMut + Pessimize> BorrowPessimize for Pin<P>

Source§

impl<T: ?Sized> BorrowPessimize for *mut T

Source§

impl<T: ?Sized> BorrowPessimize for Box<T>

Available on crate feature alloc only.
Source§

impl<T: ?Sized> BorrowPessimize for NonNull<T>

Implementors§