devela_base_alloc 0.25.0

base alloc shared functionality for devela
Documentation
[package]
name = "devela_base_alloc"
description = "base alloc shared functionality for devela"
repository = "https://github.com/andamira/devela/tree/main/crates/base/alloc"
documentation = "https://docs.rs/devela_base_alloc"
# version = "0.25.0-wip.4" # 2026-03-11
version.workspace = true
rust-version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
include = [
	"/Cargo.toml",
	# source code
	"/src/**/*.rs", "/src/**/*.md",
	"/build/**/*",
	## documentation
	"/LICENSE*",
]
categories = ["rust-patterns", "development-tools"]
keywords = ["dev", "extension"]
build = "build/mod.rs"
autoexamples = false
publish = true
metadata.docs.rs = { features = ["_docs", "__publish"], no-default-features = true }

[lib]
path = "src/index.rs"
bench = false

[features]

#* Development features *#
__dbg = ["devela_base_core/__dbg"]
__publish = []
__std = [] # remove no_std for testing purposes only
__docs_internal = [ # enables documentation for internal items
	"devela_base_core/__docs_internal",
]

#* Environment features *#
alloc = ["portable-atomic-util?/alloc"] # always enabled

#* Module features *#
all = [ # enables all the 12 modules (and their submodules)
	"media","num", # "code","data","geom","lang","org","phys","run","sys","work","text","ui","vita",
]
media = ["color"]
	color = []
num = ["int", "rand"]
	int = ["devela_base_core/int"]
	rand = ["devela_base_core/rand"]

#* Safety features *#
safest = ["safe"]
safe = [
	"devela_base_core/safe", "safe_build",
	"safe_code", "safe_data", "safe_geom", "safe_lang", "safe_media", "safe_num", "safe_org",
	"safe_phys", "safe_run", "safe_sys", "safe_text", "safe_ui", "safe_vita", "safe_work",
]
	safe_build = []
	safe_code = ["devela_base_core/safe_code"]
	safe_data = ["devela_base_core/safe_data"]
	safe_geom = ["devela_base_core/safe_geom"]
	safe_lang = ["devela_base_core/safe_lang"]
	safe_media = ["devela_base_core/safe_media", "safe_color"]
		safe_color = ["devela_base_core/safe_color"]
	safe_num = ["devela_base_core/safe_num"]
	safe_org = ["devela_base_core/safe_org"]
	safe_phys = ["devela_base_core/safe_phys"]
	safe_run = ["devela_base_core/safe_run"]
	safe_sys = ["devela_base_core/safe_sys", "safe_mem"]
		safe_mem = ["devela_base_core/safe_mem"]
	safe_text = ["devela_base_core/safe_text"]
	safe_ui = ["devela_base_core/safe_ui"]
	safe_vita = ["devela_base_core/safe_vita"]
	safe_work = ["devela_base_core/safe_work"]

unsafe = [
	"devela_base_core/unsafe",
	"unsafe_array", "unsafe_ffi", "unsafe_hint", "unsafe_layout",
	"unsafe_niche", "unsafe_ptr", "unsafe_slice", "unsafe_str",
	"unsafe_sync", "unsafe_syscall", "unsafe_thread",
]
	unsafe_array   = []
	unsafe_ffi     = []
	unsafe_hint    = []
	unsafe_layout  = []
	unsafe_niche   = []
	unsafe_ptr     = []
	unsafe_slice   = []
	unsafe_str     = []
	unsafe_sync    = []
	unsafe_syscall = []
	unsafe_thread  = []

#* Capability features *#
# WAIT: [doc_auto_cfg on default features](https://github.com/rust-lang/rust/issues/115840)
default = ["alloc"]

_docs_examples = [ # document examples and example generated items
	"devela_base_core/_docs_examples",
]
_docs_min = [ # the minimum capabilities to document every item
	"alloc",
	"_docs_examples",
	# modules
	"all",
]
_docs_nodep = [ # +unsafe
	"_docs_min", "unsafe",
]
_docs = [ # +dep_all
	"_docs_nodep", "dep_all",
]

#* Dependency features (optional external dependencies) *#
# ------------------------------------------------------------------------------
# They are associated to optional dependencies and groups of modules.
# Enabling any of these will set the `dep··` reflection flag.
#
# Names are prefixed with `dep_`, and use underscores in place of dashes.

# In sync with ./config/dep_all & ./src/yard/_dep.rs
dep_all = [ # enables all 1 optional external dependencies:
	"dep_portable_atomic_util",
]

# individual dependencies features
dep_portable_atomic_util = ["dep:portable-atomic-util"]                           # text:str

[dependencies]
devela_base_core.workspace = true

#* optional external dependencies *#

portable-atomic-util = { workspace = true, optional = true }


[badges]
maintenance.status = "experimental"

[lints]
workspace = true