Enum UnsafeCellStrategy
pub enum UnsafeCellStrategy {
Sized {
cells: List<(Size, Size)>,
},
Slice {
element_cells: List<(Size, Size)>,
},
TraitObject,
Tuple {
head_cells: List<(Size, Size)>,
tail_cells: GcCow<UnsafeCellStrategy>,
},
}Expand description
Describes where in a potentially unsized type the UnsafeCell are.
Separate from LayoutStrategy since we must be able to compute LayoutStrategy from a
MiniRust Type, but that does not have enough information for an UnsafeCellStrategy.
FIXME: maybe it should?
Variants§
Sized
List of offsets and sizes of UnsafeCells.
Slice
Since the elements of a slice have the same type, we only keep track of the UnsafeCell’s of one element, we can then “repeat” this for the rest of the slice.
TraitObject
The bytes for UnsafeCell’s must be looked up in the VTable.
Tuple
A Tuple consists of a sized head an unsized tail.
Trait Implementations§
§impl Clone for UnsafeCellStrategy
impl Clone for UnsafeCellStrategy
§fn clone(&self) -> UnsafeCellStrategy
fn clone(&self) -> UnsafeCellStrategy
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for UnsafeCellStrategy
§impl Debug for UnsafeCellStrategy
impl Debug for UnsafeCellStrategy
§impl<'de> Deserialize<'de> for UnsafeCellStrategy
impl<'de> Deserialize<'de> for UnsafeCellStrategy
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<UnsafeCellStrategy, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<UnsafeCellStrategy, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for UnsafeCellStrategy
§impl Hash for UnsafeCellStrategy
impl Hash for UnsafeCellStrategy
§impl Ord for UnsafeCellStrategy
impl Ord for UnsafeCellStrategy
§fn cmp(&self, other: &UnsafeCellStrategy) -> Ordering
fn cmp(&self, other: &UnsafeCellStrategy) -> Ordering
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
1.21.0 (const: unstable) · Source§fn min(self, other: Self) -> Selfwhere
Self: Sized,
fn min(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the minimum of two values. Read more
§impl PartialEq for UnsafeCellStrategy
impl PartialEq for UnsafeCellStrategy
§impl PartialOrd for UnsafeCellStrategy
impl PartialOrd for UnsafeCellStrategy
§impl Serialize for UnsafeCellStrategy
impl Serialize for UnsafeCellStrategy
§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
impl StructuralPartialEq for UnsafeCellStrategy
Auto Trait Implementations§
impl !Send for UnsafeCellStrategy
impl !Sync for UnsafeCellStrategy
impl Freeze for UnsafeCellStrategy
impl RefUnwindSafe for UnsafeCellStrategy
impl Unpin for UnsafeCellStrategy
impl UnsafeUnpin for UnsafeCellStrategy
impl UnwindSafe for UnsafeCellStrategy
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
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 more