Lines Matching refs:Dst

60     pub unsafe trait Project<Src: ?Sized, Dst: ?Sized> {
73 fn project(src: PtrInner<'_, Src>) -> *mut Dst; in project() argument
83 pub unsafe trait Cast<Src: ?Sized, Dst: ?Sized>: Project<Src, Dst> {}
90 pub unsafe trait CastExact<Src: ?Sized, Dst: ?Sized>: Cast<Src, Dst> {}
128 unsafe impl<Src, Dst> Project<Src, Dst> for CastSized {
130 fn project(src: PtrInner<'_, Src>) -> *mut Dst { in project() argument
131 static_assert!(Src, Dst => mem::size_of::<Src>() >= mem::size_of::<Dst>()); in project()
132 src.as_ptr().cast::<Dst>() in project()
137 unsafe impl<Src, Dst> Cast<Src, Dst> for CastSized {}
155 unsafe impl<Src, Dst> Project<Src, Dst> for CastSizedExact {
157 fn project(src: PtrInner<'_, Src>) -> *mut Dst { in project() argument
158 static_assert!(Src, Dst => mem::size_of::<Src>() == mem::size_of::<Dst>()); in project()
159 src.as_ptr().cast::<Dst>() in project()
164 unsafe impl<Src, Dst> Cast<Src, Dst> for CastSizedExact {}
168 unsafe impl<Src, Dst> CastExact<Src, Dst> for CastSizedExact {}
190 unsafe impl<Src, Dst> Project<Src, Dst> for CastUnsized
193 Dst: ?Sized + KnownLayout<PointerMetadata = Src::PointerMetadata>,
196 fn project(src: PtrInner<'_, Src>) -> *mut Dst { in project() argument
199 static_assert!(Src: ?Sized + KnownLayout, Dst: ?Sized + KnownLayout => { in project()
201 let dst = <Dst as KnownLayout>::LAYOUT; in project()
213 Dst::raw_from_ptr_len(src.as_non_null().cast::<u8>(), metadata).as_ptr() in project()
218 unsafe impl<Src, Dst> Cast<Src, Dst> for CastUnsized
221 Dst: ?Sized + KnownLayout<PointerMetadata = Src::PointerMetadata>,
232 unsafe impl<Src, Dst> CastExact<Src, Dst> for CastUnsized
235 Dst: ?Sized + KnownLayout<PointerMetadata = Src::PointerMetadata>,