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:

  1. enable the desired unsafe feature.
  2. 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

------------------------------------------------------------------------------