xref: /linux/rust/zerocopy/benches/try_transmute.rs (revision b079329b8691768962aa514b8f8c9077ca352459)
1*c3739801SMiguel Ojeda use zerocopy::Unalign;
2*c3739801SMiguel Ojeda use zerocopy_derive::*;
3*c3739801SMiguel Ojeda 
4*c3739801SMiguel Ojeda #[path = "formats/coco_static_size.rs"]
5*c3739801SMiguel Ojeda mod format;
6*c3739801SMiguel Ojeda 
7*c3739801SMiguel Ojeda #[derive(IntoBytes, KnownLayout, Immutable)]
8*c3739801SMiguel Ojeda #[repr(C)]
9*c3739801SMiguel Ojeda struct MinimalViableSource {
10*c3739801SMiguel Ojeda     bytes: [u8; 6],
11*c3739801SMiguel Ojeda }
12*c3739801SMiguel Ojeda 
13*c3739801SMiguel Ojeda #[unsafe(no_mangle)]
14*c3739801SMiguel Ojeda fn bench_try_transmute(source: MinimalViableSource) -> Option<Unalign<format::CocoPacket>> {
15*c3739801SMiguel Ojeda     zerocopy::try_transmute!(source).ok()
16*c3739801SMiguel Ojeda }
17