devela/sys/mem/
mod.rs

1// devela::sys::mem
2//
3//! Memory management.
4#![doc = crate::doc_!(modules: crate::sys; mem: cell)]
5#![doc = crate::doc_!(newline)]
6//!
7#![doc = crate::doc_!(extends: alloc, borrow, boxed, cell, mem, pin, ptr, rc, slice)]
8#![cfg_attr(
9    any(not(feature = "bit")),
10    doc = "## Features\nTo compile the missing items, enable the `bit` feature."
11)]
12//
13// safety
14#![cfg_attr(feature = "safe_mem", forbid(unsafe_code))]
15
16mod aligned; // MemAligned
17mod alloc; // Alloc, ::alloc::alloc::*
18mod cache_align; // CacheAlign
19mod cswap; // cswap!
20mod ext; // ExtMem
21mod namespace; // Mem
22mod ptr; // Ptr, ::core::ptr::*
23mod reexports; // ::core::mem::*
24mod size; // size_of_expr!, BitSized, ByteSized,
25mod slice; // Slice, ExtSlice
26mod storage; // Bare, BareBox, Boxed, Storage
27
28#[cfg(all(not(feature = "safe_mem"), feature = "unsafe_ptr"))]
29#[cfg_attr(feature = "nightly_doc", doc(cfg(feature = "unsafe_ptr")))]
30mod pin; // Pinned
31#[cfg(all(not(feature = "safe_mem"), feature = "unsafe_layout"))]
32#[cfg_attr(feature = "nightly_doc", doc(cfg(feature = "unsafe_layout")))]
33mod pod; // MemPod
34
35#[cfg(feature = "std")]
36#[cfg(all(not(feature = "safe_mem"), feature = "unsafe_layout"))]
37#[cfg_attr(feature = "nightly_doc", doc(cfg(all(feature = "std", feature = "unsafe_layout"))))]
38mod guard; // Current, CurrrentGuard
39
40pub mod cell; // ExtCellOption, ::core::cell::*
41
42crate::items! { // structural access: _mods, _pub_mods, _hidden, _all, _always
43    #[allow(unused)]
44    pub use {_mods::*, _hidden::*};
45    #[allow(unused)] #[doc(hidden, no_inline)]
46    pub use {_always::*, _pub_mods::*};
47
48    mod _mods { #![allow(unused)]
49        pub use super::{
50            aligned::*, alloc::_all::*, cache_align::*, cswap::*, ext::*, namespace::*,
51            ptr::_all::*, reexports::*, size::_all::*, slice::_all::*, storage::*,
52        };
53        #[cfg(all(not(feature = "safe_mem"), feature = "unsafe_ptr"))]
54        pub use super::pin::Pinned;
55        #[cfg(all(not(feature = "safe_mem"), feature = "unsafe_layout"))]
56        pub use super::pod::MemPod;
57        #[cfg(feature = "std")]
58        #[cfg(all(not(feature = "safe_mem"), feature = "unsafe_layout"))]
59        pub use super::guard::{Current, CurrentGuard};
60        // WIPZONE
61        // pub use super::borrow::*;
62    }
63    mod _pub_mods {
64        pub use super::cell::_all::*;
65    }
66    pub(super) mod _hidden {
67        pub use super::size::_hidden::*;
68    }
69    pub(super) mod _all {
70        #[doc(inline)]
71        pub use super::{_mods::*, _pub_mods::*};
72    }
73    pub(super) mod _always { #![allow(unused)]
74        pub use super::{cell::_always::*, ptr::_always::*, reexports::*};
75    }
76}
77// WIPZONE
78// mod borrow;