#![cfg(feature = "derive")] #![allow(dead_code)] use bytemuck::{ByteEq, ByteHash, Pod, TransparentWrapper, Zeroable}; #[derive(Copy, Clone, Pod, Zeroable, ByteEq, ByteHash)] #[repr(C)] struct Test { a: u16, b: u16, } #[derive(TransparentWrapper)] #[repr(transparent)] struct TransparentSingle { a: u16, } #[derive(TransparentWrapper)] #[repr(transparent)] #[transparent(u16)] struct TransparentWithZeroSized { a: u16, b: (), } #[derive(TransparentWrapper)] #[repr(transparent)] struct TransparentWithGeneric { a: T, } /// Ensuring that no additional bounds are emitted. /// See https://github.com/Lokathor/bytemuck/issues/145 fn test_generic(x: T) -> TransparentWithGeneric { TransparentWithGeneric::wrap(x) } #[derive(TransparentWrapper)] #[repr(transparent)] #[transparent(T)] struct TransparentWithGenericAndZeroSized { a: T, b: () } /// Ensuring that no additional bounds are emitted. /// See https://github.com/Lokathor/bytemuck/issues/145 fn test_generic_with_zst(x: T) -> TransparentWithGenericAndZeroSized { TransparentWithGenericAndZeroSized::wrap(x) }