userspace/macros/traits/implement.rs
1#[macro_export]
2macro_rules! trait_implement_primitives {
3 ($($t:ty),*) => {
4 $crate::trait_implement_primitive!(
5 true, bool, char, f32, f64, i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128,
6 usize
7 );
8 $crate::trait_implement_bytes!(
9 bool, char, f32, f64, i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, usize
10 );
11
12 impl $crate::traits::Bytes<crate::Origin, crate::Origin> for () {
13 const BYTES_SIZE: usize = core::mem::size_of::<()>();
14 fn from_bytes(
15 _bytes: [u8; <Self as $crate::traits::Bytes<crate::Origin, crate::Origin>>::BYTES_SIZE],
16 _endianness: bool,
17 ) -> Self {
18 ()
19 }
20 fn to_bytes(
21 &self,
22 _endianness: bool,
23 ) -> [u8; <Self as $crate::traits::Bytes<crate::Origin, crate::Origin>>::BYTES_SIZE] {
24 [0u8; 0]
25 }
26 }
27 };
28}
29
30// #[macro_export]
31// macro_rules! trait_implement_defaut_for_primitives_by_crate {
32// ($crate_id:ident) => {
33// pub trait $crate_id {}
34
35// trait_implement_primitive!(
36// $crate_id, true, bool, char, f32, f64, i8, i16, i32, i64, i128, isize, u8, u16, u32,
37// u64, u128, usize
38// );
39
40// trait_implement_bytes!(
41// $crate_id, bool, char, f32, f64, i8, i16, i32, i64, i128, isize, u8, u16, u32, u64,
42// u128, usize
43// );
44// };
45// }
46// pub use trait_implement_defaut_for_primitives_by_crate;
47pub use trait_implement_primitives;