Lines Matching refs:Sized
60 pub unsafe trait Project<Src: ?Sized, Dst: ?Sized> {
83 pub unsafe trait Cast<Src: ?Sized, Dst: ?Sized>: Project<Src, Dst> {}
90 pub unsafe trait CastExact<Src: ?Sized, Dst: ?Sized>: Cast<Src, Dst> {}
100 unsafe impl<T: ?Sized> Project<T, T> for IdCast {
108 unsafe impl<T: ?Sized> Cast<T, T> for IdCast {}
111 unsafe impl<T: ?Sized> CastExact<T, T> for IdCast {}
192 Src: ?Sized + KnownLayout,
193 Dst: ?Sized + KnownLayout<PointerMetadata = Src::PointerMetadata>,
199 static_assert!(Src: ?Sized + KnownLayout, Dst: ?Sized + KnownLayout => { in project()
203 … (SizeInfo::Sized { size: src_size }, SizeInfo::Sized { size: dst_size }) => src_size == dst_size, in project()
220 Src: ?Sized + KnownLayout,
221 Dst: ?Sized + KnownLayout<PointerMetadata = Src::PointerMetadata>,
234 Src: ?Sized + KnownLayout,
235 Dst: ?Sized + KnownLayout<PointerMetadata = Src::PointerMetadata>,
244 pub struct Projection<F: ?Sized, const VARIANT_ID: i128, const FIELD_ID: i128> {
251 unsafe impl<T: ?Sized, F, const VARIANT_ID: i128, const FIELD_ID: i128> Project<T, T::Type>
295 unsafe impl<T: ?Sized, F, const FIELD_ID: i128> Cast<T, T::Type>
309 pub struct TransitiveProject<U: ?Sized, TU, UV> {
323 T: ?Sized,
324 U: ?Sized,
325 V: ?Sized,
340 T: ?Sized,
341 U: ?Sized,
342 V: ?Sized,
353 T: ?Sized,
354 U: ?Sized,
355 V: ?Sized,
372 unsafe impl<T: ?Sized + KnownLayout> Project<T, [u8]> for AsBytesCast {
390 unsafe impl<T: ?Sized + KnownLayout> Cast<T, [u8]> for AsBytesCast {}
393 unsafe impl<T: ?Sized + KnownLayout> CastExact<T, [u8]> for AsBytesCast {}
401 unsafe impl<T: ?Sized> Project<T, ()> for CastToUnit {
409 unsafe impl<T: ?Sized> Cast<T, ()> for CastToUnit {}