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;