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, _internals, _all, _always
38    #[allow(unused)]
39    pub use {_mods::*, _hidden::*, _internals::*};
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        // WIPZONE
52        // #[cfg(feature = "std")]
53        // pub use super::bench::*;
54        // pub use super::bench::_all::*;
55    }
56    pub(super) mod _hidden {
57        pub use super::mem::_hidden::*;
58    }
59    pub(super) mod _internals { #![allow(unused)]
60    }
61    pub(super) mod _all { #![allow(unused)]
62        #[doc(inline)]
63        pub use super::{_mods::*, _pub_mods::*};
64    }
65    pub(super) mod _always { #![allow(unused)]
66        pub use super::{
67            arch::_always::*, env::_always::*, io::_always::*, mem::_always::*,
68        };
69    }
70}
71// WIPZONE
72// #[cfg(feature = "std")]
73// mod bench;