Lines Matching refs:KnownLayout
541 pub use zerocopy_derive::KnownLayout;
754 pub unsafe trait KnownLayout { interface
776 type MaybeUninit: ?Sized + KnownLayout<PointerMetadata = Self::PointerMetadata>;
892 T: ?Sized + KnownLayout<PointerMetadata = usize>, in trailing_slice_layout()
900 T: KnownLayout<PointerMetadata = usize>, in trailing_slice_layout()
915 T: ?Sized + KnownLayout, in maximum_trailing_slice_len() argument
923 T: KnownLayout, in maximum_trailing_slice_len()
1020 unsafe impl<T> KnownLayout for [T] { impl
1153 unsafe_impl_known_layout!(T: ?Sized + KnownLayout => #[repr(T)] ManuallyDrop<T>);
1154 unsafe_impl_known_layout!(T: ?Sized + KnownLayout => #[repr(T)] UnsafeCell<T>);
1155 unsafe_impl_known_layout!(T: ?Sized + KnownLayout => #[repr(T)] Cell<T>);
1169 unsafe_impl_known_layout!(T: ?Sized + KnownLayout => #[repr(T::MaybeUninit)] MaybeUninit<T>)
1880 Self: KnownLayout + Immutable, in try_ref_from_bytes()
2003 Self: KnownLayout + Immutable, in try_ref_from_prefix()
2113 Self: KnownLayout + Immutable, in try_ref_from_suffix()
2207 Self: KnownLayout + IntoBytes, in try_mut_from_bytes()
2318 Self: KnownLayout + IntoBytes, in try_mut_from_prefix()
2418 Self: KnownLayout + IntoBytes, in try_mut_from_suffix()
2524 Self: KnownLayout<PointerMetadata = usize> + Immutable, in try_ref_from_bytes_with_elems()
2645 Self: KnownLayout<PointerMetadata = usize> + Immutable, in try_ref_from_prefix_with_elems()
2753 Self: KnownLayout<PointerMetadata = usize> + Immutable, in try_ref_from_suffix_with_elems()
2849 Self: KnownLayout<PointerMetadata = usize> + IntoBytes, in try_mut_from_bytes_with_elems()
2960 Self: KnownLayout<PointerMetadata = usize> + IntoBytes, in try_mut_from_prefix_with_elems()
3060 Self: KnownLayout<PointerMetadata = usize> + IntoBytes, in try_mut_from_suffix_with_elems()
3298 fn try_ref_from_prefix_suffix<T: TryFromBytes + KnownLayout + Immutable + ?Sized>( in try_ref_from_prefix_suffix()
3318 fn try_mut_from_prefix_suffix<T: IntoBytes + TryFromBytes + KnownLayout + ?Sized>( in try_mut_from_prefix_suffix()
3701 Self: KnownLayout<PointerMetadata = usize>, in new_box_zeroed_with_elems()
4157 Self: KnownLayout + Immutable, in ref_from_bytes()
4269 Self: KnownLayout + Immutable, in ref_from_prefix()
4363 Self: Immutable + KnownLayout, in ref_from_suffix() argument
4447 Self: IntoBytes + KnownLayout, in mut_from_bytes() argument
4540 Self: IntoBytes + KnownLayout, in mut_from_prefix() argument
4621 Self: IntoBytes + KnownLayout, in mut_from_suffix() argument
4714 Self: KnownLayout<PointerMetadata = usize> + Immutable, in ref_from_bytes_with_elems()
4813 Self: KnownLayout<PointerMetadata = usize> + Immutable, in ref_from_prefix_with_elems()
4907 Self: KnownLayout<PointerMetadata = usize> + Immutable, in ref_from_suffix_with_elems()
4988 Self: IntoBytes + KnownLayout<PointerMetadata = usize> + Immutable, in mut_from_bytes_with_elems()
5078 Self: IntoBytes + KnownLayout<PointerMetadata = usize>, in mut_from_prefix_with_elems()
5163 Self: IntoBytes + KnownLayout<PointerMetadata = usize>, in mut_from_suffix_with_elems()
5395 Self: KnownLayout + Immutable, in ref_from()
5406 Self: KnownLayout + IntoBytes, in mut_from()
5475 fn ref_from_prefix_suffix<T: FromBytes + KnownLayout + Immutable + ?Sized>( in ref_from_prefix_suffix()
5495 fn mut_from_prefix_suffix<T: FromBytes + IntoBytes + KnownLayout + ?Sized>( in mut_from_prefix_suffix()
6504 assert_eq!(<$ty as KnownLayout>::LAYOUT, expect); in test_known_layout()
6505 assert_eq!(<ManuallyDrop<$ty> as KnownLayout>::LAYOUT, expect); in test_known_layout()
6506 assert_eq!(<PhantomData<$ty> as KnownLayout>::LAYOUT, <() as KnownLayout>::LAYOUT); in test_known_layout()
6570 #[derive(KnownLayout)] in test_known_layout_derive()
6583 fn _assert_kl<T: ?Sized + KnownLayout>(_: &T) {} in test_known_layout_derive()
6600 #[derive(KnownLayout)] in test_known_layout_derive()
6605 assert_eq!(<KL01 as KnownLayout>::LAYOUT, expected); in test_known_layout_derive()
6606 assert_eq!(<KL01 as KnownLayout>::LAYOUT, sized_layout(4, 8)); in test_known_layout_derive()
6610 #[derive(KnownLayout)] in test_known_layout_derive()
6616 assert_eq!(<KL01Align as KnownLayout>::LAYOUT, expected); in test_known_layout_derive()
6617 assert_eq!(<KL01Align as KnownLayout>::LAYOUT, sized_layout(64, 64)); in test_known_layout_derive()
6621 #[derive(KnownLayout)] in test_known_layout_derive()
6627 assert_eq!(<KL01Packed as KnownLayout>::LAYOUT, expected); in test_known_layout_derive()
6628 assert_eq!(<KL01Packed as KnownLayout>::LAYOUT, sized_layout(1, 6)); in test_known_layout_derive()
6632 #[derive(KnownLayout)] in test_known_layout_derive()
6636 assert_impl_all!(KL01PackedN: KnownLayout); in test_known_layout_derive()
6640 assert_eq!(<KL01PackedN as KnownLayout>::LAYOUT, expected); in test_known_layout_derive()
6641 assert_eq!(<KL01PackedN as KnownLayout>::LAYOUT, sized_layout(2, 6)); in test_known_layout_derive()
6646 #[derive(KnownLayout)] in test_known_layout_derive()
6651 assert_eq!(<KL03 as KnownLayout>::LAYOUT, expected); in test_known_layout_derive()
6652 assert_eq!(<KL03 as KnownLayout>::LAYOUT, sized_layout(1, 1)); in test_known_layout_derive()
6656 #[derive(KnownLayout)] in test_known_layout_derive()
6662 assert_eq!(<KL03Align as KnownLayout>::LAYOUT, expected); in test_known_layout_derive()
6663 assert_eq!(<KL03Align as KnownLayout>::LAYOUT, sized_layout(64, 64)); in test_known_layout_derive()
6667 #[derive(KnownLayout)] in test_known_layout_derive()
6673 assert_eq!(<KL03Packed as KnownLayout>::LAYOUT, expected); in test_known_layout_derive()
6674 assert_eq!(<KL03Packed as KnownLayout>::LAYOUT, sized_layout(1, 5)); in test_known_layout_derive()
6678 #[derive(KnownLayout)] in test_known_layout_derive()
6682 assert_impl_all!(KL03PackedN: KnownLayout); in test_known_layout_derive()
6686 assert_eq!(<KL03PackedN as KnownLayout>::LAYOUT, expected); in test_known_layout_derive()
6687 assert_eq!(<KL03PackedN as KnownLayout>::LAYOUT, sized_layout(2, 6)); in test_known_layout_derive()
6692 #[derive(KnownLayout)] in test_known_layout_derive()
6695 fn _test_kl05<T>(t: T) -> impl KnownLayout { in test_known_layout_derive() argument
6702 #[derive(KnownLayout)] in test_known_layout_derive()
6703 struct KL07<T: KnownLayout>(u8, T); in test_known_layout_derive()
6705 fn _test_kl07<T: KnownLayout>(t: T) -> impl KnownLayout { in test_known_layout_derive() argument
6712 #[derive(KnownLayout)] in test_known_layout_derive()
6718 .extend(<[u8] as KnownLayout>::LAYOUT, None) in test_known_layout_derive()
6721 assert_eq!(<KL10 as KnownLayout>::LAYOUT, expected); in test_known_layout_derive()
6722 assert_eq!(<KL10 as KnownLayout>::LAYOUT, unsized_layout(4, 1, 4, false)); in test_known_layout_derive()
6726 #[derive(KnownLayout)] in test_known_layout_derive()
6734 .extend(<[u8] as KnownLayout>::LAYOUT, None) in test_known_layout_derive()
6737 assert_eq!(<KL10Align as KnownLayout>::LAYOUT, expected); in test_known_layout_derive()
6738 assert_eq!(<KL10Align as KnownLayout>::LAYOUT, unsized_layout(64, 1, 4, false)); in test_known_layout_derive()
6742 #[derive(KnownLayout)] in test_known_layout_derive()
6750 .extend(<[u8] as KnownLayout>::LAYOUT, repr_packed) in test_known_layout_derive()
6753 assert_eq!(<KL10Packed as KnownLayout>::LAYOUT, expected); in test_known_layout_derive()
6754 assert_eq!(<KL10Packed as KnownLayout>::LAYOUT, unsized_layout(1, 1, 4, false)); in test_known_layout_derive()
6758 #[derive(KnownLayout)] in test_known_layout_derive()
6766 .extend(<[u8] as KnownLayout>::LAYOUT, repr_packed) in test_known_layout_derive()
6769 assert_eq!(<KL10PackedN as KnownLayout>::LAYOUT, expected); in test_known_layout_derive()
6770 assert_eq!(<KL10PackedN as KnownLayout>::LAYOUT, unsized_layout(2, 1, 4, false)); in test_known_layout_derive()
6775 #[derive(KnownLayout)] in test_known_layout_derive()
6781 .extend(<u8 as KnownLayout>::LAYOUT, None) in test_known_layout_derive()
6784 assert_eq!(<KL11 as KnownLayout>::LAYOUT, expected); in test_known_layout_derive()
6785 assert_eq!(<KL11 as KnownLayout>::LAYOUT, sized_layout(8, 16)); in test_known_layout_derive()
6789 #[derive(KnownLayout)] in test_known_layout_derive()
6797 .extend(<u8 as KnownLayout>::LAYOUT, None) in test_known_layout_derive()
6800 assert_eq!(<KL11Align as KnownLayout>::LAYOUT, expected); in test_known_layout_derive()
6801 assert_eq!(<KL11Align as KnownLayout>::LAYOUT, sized_layout(64, 64)); in test_known_layout_derive()
6805 #[derive(KnownLayout)] in test_known_layout_derive()
6813 .extend(<u8 as KnownLayout>::LAYOUT, repr_packed) in test_known_layout_derive()
6816 assert_eq!(<KL11Packed as KnownLayout>::LAYOUT, expected); in test_known_layout_derive()
6817 assert_eq!(<KL11Packed as KnownLayout>::LAYOUT, sized_layout(1, 9)); in test_known_layout_derive()
6821 #[derive(KnownLayout)] in test_known_layout_derive()
6829 .extend(<u8 as KnownLayout>::LAYOUT, repr_packed) in test_known_layout_derive()
6832 assert_eq!(<KL11PackedN as KnownLayout>::LAYOUT, expected); in test_known_layout_derive()
6833 assert_eq!(<KL11PackedN as KnownLayout>::LAYOUT, sized_layout(2, 10)); in test_known_layout_derive()
6838 #[derive(KnownLayout)] in test_known_layout_derive()
6840 struct KL14<T: ?Sized + KnownLayout>(u8, T); in test_known_layout_derive()
6842 fn _test_kl14<T: ?Sized + KnownLayout>(kl: &KL14<T>) { in test_known_layout_derive()
6849 #[derive(KnownLayout)] in test_known_layout_derive()
6851 struct KL15<T: KnownLayout>(u8, T); in test_known_layout_derive()
6853 fn _test_kl15<T: KnownLayout>(t: T) -> impl KnownLayout { in test_known_layout_derive() argument
6866 #[derive(KnownLayout)] in test_known_layout_derive()
6870 assert_eq!(<KLTU<(), ()> as KnownLayout>::LAYOUT, sized_layout(1, 0)); in test_known_layout_derive()
6872 assert_eq!(<KLTU<(), u8> as KnownLayout>::LAYOUT, sized_layout(1, 1)); in test_known_layout_derive()
6874 assert_eq!(<KLTU<(), AU16> as KnownLayout>::LAYOUT, sized_layout(2, 2)); in test_known_layout_derive()
6876 assert_eq!(<KLTU<(), [()]> as KnownLayout>::LAYOUT, unsized_layout(1, 0, 0, false)); in test_known_layout_derive()
6878 assert_eq!(<KLTU<(), [u8]> as KnownLayout>::LAYOUT, unsized_layout(1, 1, 0, false)); in test_known_layout_derive()
6880 assert_eq!(<KLTU<(), [AU16]> as KnownLayout>::LAYOUT, unsized_layout(2, 2, 0, false)); in test_known_layout_derive()
6882 assert_eq!(<KLTU<u8, ()> as KnownLayout>::LAYOUT, sized_layout(1, 1)); in test_known_layout_derive()
6884 assert_eq!(<KLTU<u8, u8> as KnownLayout>::LAYOUT, sized_layout(1, 2)); in test_known_layout_derive()
6886 assert_eq!(<KLTU<u8, AU16> as KnownLayout>::LAYOUT, sized_layout(2, 4)); in test_known_layout_derive()
6888 assert_eq!(<KLTU<u8, [()]> as KnownLayout>::LAYOUT, unsized_layout(1, 0, 1, false)); in test_known_layout_derive()
6890 assert_eq!(<KLTU<u8, [u8]> as KnownLayout>::LAYOUT, unsized_layout(1, 1, 1, false)); in test_known_layout_derive()
6892 assert_eq!(<KLTU<u8, [AU16]> as KnownLayout>::LAYOUT, unsized_layout(2, 2, 2, false)); in test_known_layout_derive()
6894 assert_eq!(<KLTU<AU16, ()> as KnownLayout>::LAYOUT, sized_layout(2, 2)); in test_known_layout_derive()
6896 assert_eq!(<KLTU<AU16, u8> as KnownLayout>::LAYOUT, sized_layout(2, 4)); in test_known_layout_derive()
6898 assert_eq!(<KLTU<AU16, AU16> as KnownLayout>::LAYOUT, sized_layout(2, 4)); in test_known_layout_derive()
6900 assert_eq!(<KLTU<AU16, [()]> as KnownLayout>::LAYOUT, unsized_layout(2, 0, 2, false)); in test_known_layout_derive()
6902 assert_eq!(<KLTU<AU16, [u8]> as KnownLayout>::LAYOUT, unsized_layout(2, 1, 2, false)); in test_known_layout_derive()
6904 assert_eq!(<KLTU<AU16, [AU16]> as KnownLayout>::LAYOUT, unsized_layout(2, 2, 2, false)); in test_known_layout_derive()
6908 #[derive(KnownLayout)] in test_known_layout_derive()
6912 assert_eq!(<KLF0 as KnownLayout>::LAYOUT, sized_layout(1, 0)); in test_known_layout_derive()
6914 #[derive(KnownLayout)] in test_known_layout_derive()
6918 assert_eq!(<KLF1 as KnownLayout>::LAYOUT, unsized_layout(1, 1, 0, true)); in test_known_layout_derive()
6920 #[derive(KnownLayout)] in test_known_layout_derive()
6924 assert_eq!(<KLF2 as KnownLayout>::LAYOUT, unsized_layout(1, 1, 1, false)); in test_known_layout_derive()
6926 #[derive(KnownLayout)] in test_known_layout_derive()
6930 assert_eq!(<KLF3 as KnownLayout>::LAYOUT, unsized_layout(2, 1, 4, false)); in test_known_layout_derive()
6932 #[derive(KnownLayout)] in test_known_layout_derive()
6936 assert_eq!(<KLF4 as KnownLayout>::LAYOUT, unsized_layout(4, 1, 8, false)); in test_known_layout_derive()