Cargo Features
devela has no features set by default.
[dependencies]
devela = { version = "0.20.0", features = ["std", "no_std", "alloc", "all", "code", "fig", "gfx", "num", "num_all", "num_niche_impls", "num_niche_range", "result", "text", "ui", "ui_all", "ui_events", "ui_term", "work", "safe", "safe_gfx", "safe_os", "safe_time", "safe_ui", "safe_ui_term", "safe_work", "unsafe", "unsafe_array", "unsafe_async", "unsafe_const", "unsafe_dyn", "unsafe_niche", "unsafe_ptr", "unsafe_slice", "unsafe_str", "nightly", "nightly_coro", "nightly_doc", "capability_max", "dep_all", "dep_text", "dep_ui_term", "dep_work", "atomic", "const-str", "crossterm", "hashbrown", "libm", "memchr", "miniquad", "portable-atomic", "rand_core", "unicode-segmentation", "unicode-width", "wide"] }
------------------------------------------------------------------------------
Features are grouped in the following categories:
- Miscellaneous
- Environment
- Module
- Safety
- Nightly
- Capability
- Dependency
- std = alloc
-
* environment features *
Enables extern_crate_std of bytemuck, use_std of either, std of optional atomic, std of optional memchr, optional rand_core, and optional wide
Affects
project::crate_root
,project::crate_root_string
… - no_std
- alloc std?
-
Enables extern_crate_alloc of bytemuck and alloc of optional memchr and optional rand_core
memchr:
The 'alloc' feature enables some APIs that require allocation, such as 'Finder::into_owned'. Note that this feature does not enable runtime CPU
feature detection. That still requires 'std'.Affects
ext::ExtAny.as_any_box
,buffer::DstVecUsize
,traits::Read.read_to_end
,ext::ExtSlice.slice_into_vec
,ext::ExtSlice.slice_try_into_vec
,trait::NumInt.int_factors
,trait::NumInt.int_ref_factors
,trait::NumInt.int_factors_proper
,trait::NumInt.int_ref_factors_proper
,trait::NumInt.int_factors_prime
,trait::NumInt.int_ref_factors_prime
,trait::NumInt.int_factors_prime_unique
,trait::NumInt.int_ref_factors_prime_unique
,ref::NumRefInt.int_ref_factors
,ref::NumRefInt.int_ref_factors_proper
,ref::NumRefInt.int_ref_factors_prime
,ref::NumRefInt.int_ref_factors_prime_unique
,string::ExtString
,coro::CoroRun
… - all = code, data, fig, gfx, io, mem, num, num_all, os, result, text, time, ui, ui_all, work
-
* module features *
- code all?
-
individual modules
- data fig all?
- gfx all?
-
Affects
gfx::color
,gfx::img
… - io mem num all?
- num_all all? = num_niche_impls, num_niche_range
- num_niche_impls num_all?
-
extra implementations for niche types
- num_niche_range num_all?
-
Range and NonRange niche types
- os result all?
- text all?
-
Affects
text::egc
… - time ui all?
- ui_all all? = ui_term
- ui_events
-
Enables events of optional crossterm
crossterm:
Enables reading input/events from the system.
- ui_term ui_all?
-
Affects
ui::term
… - work all?
-
Enables zeroable_atomics of bytemuck
Affects
work::sync
,work::thread
… - safe = safe_code, safe_data, safe_fig, safe_gfx, safe_io, safe_mem, safe_num, safe_os, safe_result, safe_text, safe_time, safe_ui, safe_work
-
- safety features *
To use unsafe functionality:
- enable the desired
unsafe
feature. - don't enable the
safe
feature for that module. in specific modules:
- safe_code safe_data safe_fig safe_gfx safe?
- safe_io safe_mem safe_num safe_os safe?
- safe_result safe_text safe_time safe?
- safe_ui safe? = safe_ui_term
- safe_ui_term safe_ui?
- safe_work safe?
- unsafe = unsafe_array, unsafe_async, unsafe_const, unsafe_dyn, unsafe_niche, unsafe_ptr, unsafe_slice, unsafe_str
-
for specific purposes:
- unsafe_array unsafe?
-
faster array initialization, UninitArray.
- unsafe_async unsafe?
-
TaskWakerNoop, CoroRun
- unsafe_const unsafe?
-
extra const methods.
- unsafe_dyn unsafe?
-
DSTs in the stack, no_std Error dyn impls.
Affects
data::dst
… - unsafe_niche unsafe?
-
unchecked niche constructors.
- unsafe_ptr unsafe?
-
pop methods without Clone.
- unsafe_slice unsafe?
-
extra slice methods, avoid bound checks.
Affects
trait::Mem.mem_as_bytes
,trait::Mem.mem_as_bytes_mut
… - unsafe_str unsafe?
-
unchecked utf-8 char and &str conversions.
- nightly = nightly_coro, nightly_doc
-
* nightly features *
specific unstable features: - nightly_coro nightly?
-
coroutines, coroutine_trait, iter_from_coroutine
- nightly_doc nightly?
-
doc_cfg
- capability_max
-
* capability features *
Enabling extra capabilites can worsen compilation times.
Some relative compilation times are provided as a guide. - dep_all = atomic, const-str, crossterm, hashbrown, libm, memchr, miniquad, portable-atomic, rand_core, unicode-segmentation, unicode-width, wide
-
* dependency features *
enable groups of dependencies: - dep_text = const-str, memchr, unicode-segmentation, unicode-width
- dep_ui_term = const-str, crossterm
- dep_work = atomic, portable-atomic
- atomic dep_all? dep_work?
-
Enables atomic
- const-str dep_all? dep_text? dep_ui_term?
-
Enables const-str
optional dependencies
- crossterm dep_all? dep_ui_term?
-
Enables crossterm
- hashbrown dep_all?
-
Enables hashbrown
- libm dep_all?
-
Enables libm
- memchr dep_all? dep_text?
-
Enables memchr
- miniquad dep_all?
-
std
Enables miniquad
- portable-atomic dep_all? dep_work?
-
Enables portable-atomic
- rand_core dep_all?
-
Enables rand_core
- unicode-segmentation dep_all? dep_text?
-
Enables unicode-segmentation
- unicode-width dep_all? dep_text?
-
Enables unicode-width
- wide dep_all?
-
Enables wide
Features from optional dependencies
------------------------------------------------------------------------------