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// }