Lines Matching refs:ReadOnly
618 pub struct ReadOnly<T: ?Sized> { struct
624 impl<T> ReadOnly<T> { implementation
628 pub const fn new(t: T) -> ReadOnly<T> { in new()
629 ReadOnly { inner: t } in new()
635 pub fn into_inner(r: ReadOnly<T>) -> T { in into_inner()
640 impl<T: ?Sized> ReadOnly<T> { implementation
642 pub(crate) fn as_mut(r: &mut ReadOnly<T>) -> &mut T { in as_mut()
652 pub(crate) const unsafe fn as_ref_unchecked(r: &ReadOnly<T>) -> &T { in as_ref_unchecked()
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 {
705 impl<T: ?Sized> SizeEq<T> for ReadOnly<T> { implementation
712 unsafe impl<T: ?Sized> TransmuteFrom<T, Valid, Valid> for ReadOnly<T> {} implementation
716 unsafe impl<T: ?Sized> TransmuteFrom<ReadOnly<T>, Valid, Valid> for T {}
718 impl<'a, T: ?Sized + Immutable> From<&'a T> for &'a ReadOnly<T> { implementation
720 fn from(t: &'a T) -> &'a ReadOnly<T> { in from()
729 impl<T: ?Sized + Immutable> Deref for ReadOnly<T> { implementation
735 unsafe { ReadOnly::as_ref_unchecked(self) } in deref()
739 impl<T: ?Sized + Immutable> DerefMut for ReadOnly<T> { implementation
742 ReadOnly::as_mut(self) in deref_mut()
746 impl<T: ?Sized + Immutable + Debug> Debug for ReadOnly<T> { implementation
754 unsafe impl<T: HasTag + ?Sized> HasTag for ReadOnly<T> { implementation
771 <T as SizeEq<ReadOnly<T>>>::CastFrom,
798 HasField<Field, VARIANT_ID, FIELD_ID> for ReadOnly<T>
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()
826 ProjectField<Field, I, VARIANT_ID, FIELD_ID> for ReadOnly<T>