userspace/
library.rs

1#![no_std]
2#![allow(incomplete_features)]
3#![allow(unused_assignments)]
4#![feature(generic_const_exprs)]
5#![feature(generic_const_items)]
6
7ample::r#struct!(
8    #[derive(Debug)]
9    pub struct Origin {}
10);
11
12#[macro_use]
13pub mod target;
14pub mod file;
15pub mod license;
16pub mod memory;
17pub mod panic;
18pub mod result;
19pub mod traits;
20
21pub use file::File;
22pub use result::{Error, Ok, Result};
23
24ample::trait_implement_primitives!();
25
26// impl ample::traits::Bytes<crate::Origin, crate::Origin> for u8 {
27//     const BYTES_SIZE: usize = 1;
28//     const BYTES_ALIGN: usize = 1;
29
30//     fn from_bytes(
31//         bytes: [u8; <Self as crate::traits::Bytes<Origin, Origin>>::BYTES_SIZE],
32//         _endianness: bool,
33//     ) -> Self {
34//         bytes[0]
35//     }
36
37//     fn to_bytes(
38//         &self,
39//         _endianness: bool,
40//     ) -> [u8; <Self as crate::traits::Bytes<Origin, Origin>>::BYTES_SIZE] {
41//         [*self]
42//     }
43// }
44
45// ample::trait_bytes_naturalize!(ample, crate);
46
47// impl<A: ample::traits::Bytes<ample::Origin>> crate::traits::Bytes<Origin, Destination> for A {
48//     const BYTES_SIZE: usize = A::BYTES_SIZE;
49//     const BYTES_ALIGN: usize = A::BYTES_ALIGN;
50
51//     fn from_bytes(
52//         bytes: [u8; <Self as crate::traits::Bytes<Origin, Destination>>::BYTES_SIZE],
53//         endianness: bool,
54//     ) -> Self
55//     where
56//         [u8; <A as ample::traits::Bytes<ample::Origin>>::BYTES_SIZE]:,
57//     {
58//         let mut ample_bytes = [0u8; <A as ample::traits::Bytes<ample::Origin>>::BYTES_SIZE];
59//         ample_bytes.copy_from_slice(&bytes);
60//         <A as ample::traits::Bytes<ample::Origin>>::from_bytes(ample_bytes, endianness)
61//     }
62
63//     fn to_bytes(
64//         &self,
65//         endianness: bool,
66//     ) -> [u8; <Self as crate::traits::Bytes<Origin, Destination>>::BYTES_SIZE] {
67//         <A as ample::traits::Bytes<ample::Origin>>::to_bytes(self, endianness)
68//     }
69// }