devela/sys/
mod.rs

1// devela::sys
2//
3//! System interfaces and hardware abstractions.
4#![doc = crate::doc_!(modules: crate; sys: arch, env, fs, io, log, mem, net, os)]
5#![doc = crate::doc_!(newline)]
6//!
7#![doc = crate::doc_!(extends: alloc, arch, borrow, boxed, cell, env, fs, mem,
8    io, net, os, path, pin, ptr, rc, slice, simd)]
9//
10//
11/* NOTES
12- To get the full list of: `arch`, `os`, `target` and `target-family`:
13```sh
14rustc +nightly -Z unstable-options --print all-target-specs-json | jq '[ to_entries[] | {"arch": .value.arch, "target": .key, "target-family": (.value."target-family" // [] | join(", ")), "os": (.value.os // "") } ]' | grep -v '""'
15```
16- Altenatively:
17```sh
18rustc --print target-list | cut -f1 -d'-'| sort | uniq # List of arches supported
19rustc --print target-list | cut -f2 -d'-'| sort | uniq # List of vendors supported
20rustc --print target-list | cut -f3 -d'-'| sort | uniq # List of OSes supported
21```
22*/
23// safety
24#![cfg_attr(feature = "safe_sys", forbid(unsafe_code))]
25
26mod sound; // IMPROVE
27
28pub mod arch; // Arch, *asm, detect_*, m128* m256*
29pub mod env; // App*, Arg*, Env
30pub mod fs; // Fs
31pub mod io; // Io*
32pub mod log;
33pub mod mem; // Mem,
34pub mod net; // Ip*, Socket*, Tcp*, Udp*
35pub mod os; // Linux,
36
37crate::items! { // structural access: _mods, _pub_mods, _hidden, _all, _always
38    #[allow(unused)]
39    pub use {_mods::*, _hidden::*};
40    #[allow(unused)] #[doc(hidden, no_inline)]
41    pub use {_always::*, _pub_mods::*};
42
43    mod _mods { #![allow(unused)]
44        pub use super::sound::_all::*;
45    }
46    mod _pub_mods { #![allow(unused)]
47        pub use super::{
48            arch::_all::*, env::_all::*, fs::_all::*, io::_all::*,
49            log::_all::*, mem::_all::*, net::_all::*, os::_all::*,
50        };
51        // #[cfg(feature = "std")]
52        // pub use super::bench::*;
53        // pub use super::bench::_all::*;
54    }
55    pub(super) mod _hidden {
56        pub use super::mem::_hidden::*;
57    }
58    pub(super) mod _all { #![allow(unused)]
59        #[doc(inline)]
60        pub use super::{_mods::*, _pub_mods::*};
61    }
62    pub(super) mod _always { #![allow(unused)]
63        pub use super::{
64            arch::_always::*, env::_always::*, io::_always::*, mem::_always::*,
65        };
66    }
67}
68// WIPZONE
69// #[cfg(feature = "std")]
70// mod bench;