Lines Matching refs:T

118 pub struct Unalign<T>(T);
123 impl_known_layout!(T => Unalign<T>);
150 impl_or_verify!(T => Unaligned for Unalign<T>);
151 impl_or_verify!(T: Immutable => Immutable for Unalign<T>);
153 T: TryFromBytes => TryFromBytes for Unalign<T>;
154 |c| T::is_bit_valid(c.transmute::<_, _, BecauseImmutable>())
156 impl_or_verify!(T: FromZeros => FromZeros for Unalign<T>);
157 impl_or_verify!(T: FromBytes => FromBytes for Unalign<T>);
158 impl_or_verify!(T: IntoBytes => IntoBytes for Unalign<T>);
164 impl<T: Copy> Clone for Unalign<T> {
166 fn clone(&self) -> Unalign<T> { in clone() argument
171 impl<T> Unalign<T> {
174 pub const fn new(val: T) -> Unalign<T> { in new() argument
180 pub const fn into_inner(self) -> T { in into_inner() argument
202 pub fn try_deref(&self) -> Result<&T, AlignmentError<&Self, T>> { in try_deref() argument
222 pub fn try_deref_mut(&mut self) -> Result<&mut T, AlignmentError<&mut Self, T>> { in try_deref_mut() argument
239 pub const unsafe fn deref_unchecked(&self) -> &T { in deref_unchecked() argument
262 pub unsafe fn deref_mut_unchecked(&mut self) -> &mut T { in deref_mut_unchecked() argument
292 pub const fn get_ptr(&self) -> *const T { in get_ptr() argument
312 pub fn get_mut_ptr(&mut self) -> *mut T { in get_mut_ptr() argument
319 pub fn set(&mut self, t: T) { in set() argument
339 pub fn update<O, F: FnOnce(&mut T) -> O>(&mut self, f: F) -> O { in update()
340 if mem::align_of::<T>() == 1 { in update()
357 struct WriteBackOnDrop<T> { in update()
358 copy: ManuallyDrop<T>, in update()
359 slf: *mut Unalign<T>, in update()
362 impl<T> Drop for WriteBackOnDrop<T> { in update()
397 impl<T: Copy> Unalign<T> {
401 pub fn get(&self) -> T { in get() argument
407 impl<T: Unaligned> Deref for Unalign<T> {
408 type Target = T;
411 fn deref(&self) -> &T { in deref() argument
416 impl<T: Unaligned> DerefMut for Unalign<T> {
418 fn deref_mut(&mut self) -> &mut T { in deref_mut() argument
423 impl<T: Unaligned + PartialOrd> PartialOrd<Unalign<T>> for Unalign<T> {
425 fn partial_cmp(&self, other: &Unalign<T>) -> Option<Ordering> { in partial_cmp()
430 impl<T: Unaligned + Ord> Ord for Unalign<T> {
432 fn cmp(&self, other: &Unalign<T>) -> Ordering { in cmp()
437 impl<T: Unaligned + PartialEq> PartialEq<Unalign<T>> for Unalign<T> {
439 fn eq(&self, other: &Unalign<T>) -> bool { in eq()
444 impl<T: Unaligned + Eq> Eq for Unalign<T> {}
446 impl<T: Unaligned + Hash> Hash for Unalign<T> {
456 impl<T: Unaligned + Debug> Debug for Unalign<T> {
463 impl<T: Unaligned + Display> Display for Unalign<T> {
492 pub struct MaybeUninit<T: ?Sized + KnownLayout>(
500 T::MaybeUninit,
504 impl<T: ?Sized + KnownLayout> MaybeUninit<T> {
507 pub fn new(val: T) -> Self in new()
509 T: Sized, in new()
536 T: Sized, in uninit()
539 let uninit = CoreMaybeUninit::<T>::uninit(); in uninit()
570 pub fn new_boxed_uninit(meta: T::PointerMetadata) -> Result<Box<Self>, AllocError> { in new_boxed_uninit()
586 pub unsafe fn assume_init(self) -> T in assume_init()
588 T: Sized, in assume_init()
596 impl<T: ?Sized + KnownLayout> fmt::Debug for MaybeUninit<T> {
618 pub struct ReadOnly<T: ?Sized> {
621 inner: T,
624 impl<T> ReadOnly<T> {
628 pub const fn new(t: T) -> ReadOnly<T> { in new() argument
635 pub fn into_inner(r: ReadOnly<T>) -> T { in into_inner() argument
640 impl<T: ?Sized> ReadOnly<T> {
642 pub(crate) fn as_mut(r: &mut ReadOnly<T>) -> &mut T { in as_mut() argument
652 pub(crate) const unsafe fn as_ref_unchecked(r: &ReadOnly<T>) -> &T { in as_ref_unchecked() argument
661 unsafe_impl_known_layout!(T: ?Sized + KnownLayout => #[repr(T)] ReadOnly<T>);
673 unsafe_impl!(T: ?Sized + Unaligned => Unaligned for ReadOnly<T>);
675 T: ?Sized + TryFromBytes => TryFromBytes for ReadOnly<T>;
676 … |c| T::is_bit_valid(c.cast::<_, <ReadOnly<T> as SizeEq<ReadOnly<ReadOnly<T>>>>::CastFrom, _>())
678 unsafe_impl!(T: ?Sized + FromZeros => FromZeros for ReadOnly<T>);
679 unsafe_impl!(T: ?Sized + FromBytes => FromBytes for ReadOnly<T>);
680 unsafe_impl!(T: ?Sized + IntoBytes => IntoBytes for ReadOnly<T>);
686 unsafe_impl!(T: ?Sized => Immutable for ReadOnly<T>);
693 define_cast!(unsafe { pub CastFromReadOnly<T: ?Sized> = ReadOnly<T> => T});
695 unsafe impl<T: ?Sized> CastExact<ReadOnly<T>, T> for CastFromReadOnly {}
697 define_cast!(unsafe { pub CastToReadOnly<T: ?Sized> = T => ReadOnly<T>});
699 unsafe impl<T: ?Sized> CastExact<T, ReadOnly<T>> for CastToReadOnly {}
701 impl<T: ?Sized> SizeEq<ReadOnly<T>> for T { implementation
705 impl<T: ?Sized> SizeEq<T> for ReadOnly<T> {
712 unsafe impl<T: ?Sized> TransmuteFrom<T, Valid, Valid> for ReadOnly<T> {}
716 unsafe impl<T: ?Sized> TransmuteFrom<ReadOnly<T>, Valid, Valid> for T {} implementation
718 impl<'a, T: ?Sized + Immutable> From<&'a T> for &'a ReadOnly<T> {
720 fn from(t: &'a T) -> &'a ReadOnly<T> { in from() argument
729 impl<T: ?Sized + Immutable> Deref for ReadOnly<T> {
730 type Target = T;
739 impl<T: ?Sized + Immutable> DerefMut for ReadOnly<T> {
746 impl<T: ?Sized + Immutable + Debug> Debug for ReadOnly<T> {
754 unsafe impl<T: HasTag + ?Sized> HasTag for ReadOnly<T> {
762 type Tag = T::Tag;
770 T,
771 <T as SizeEq<ReadOnly<T>>>::CastFrom,
772 T::ProjectToTag,
797 unsafe impl<T, Field, const VARIANT_ID: i128, const FIELD_ID: i128>
798 HasField<Field, VARIANT_ID, FIELD_ID> for ReadOnly<T>
800 T: HasField<Field, VARIANT_ID, FIELD_ID> + ?Sized,
809 type Type = ReadOnly<T::Type>;
812 fn project(slf: PtrInner<'_, Self>) -> *mut ReadOnly<T::Type> { in project()
813 slf.project::<_, <T as SizeEq<ReadOnly<T>>>::CastFrom>() in project()
815 .project::<_, <ReadOnly<T::Type> as SizeEq<T::Type>>::CastFrom>() in project()
825 unsafe impl<T, Field, I, const VARIANT_ID: i128, const FIELD_ID: i128>
826 ProjectField<Field, I, VARIANT_ID, FIELD_ID> for ReadOnly<T>
828 T: ProjectField<Field, I, VARIANT_ID, FIELD_ID> + ?Sized,
838 type Invariants = T::Invariants;
840 type Error = T::Error;
844 T::is_projectable(ptr) in is_projectable()
970 fn hash<T: Hash>(t: &T) -> u64 { in test_unalign_trait_impls()