Cargo Features

Devela has no features set by default.

[dependencies]
devela = { version = "0.22.1", features = ["alloc", "std", "no_std", "all", "code", "error", "data", "hash", "lang", "media", "audio", "draw", "color", "font", "image", "midi", "num", "alg", "geom", "prim", "cast", "join", "split", "rand", "unit", "wave", "phys", "time", "sys", "io", "mem", "bit", "linux", "windows", "text", "ascii", "fmt", "str", "ui", "layout", "work", "process", "sync", "thread", "safe", "safe_lang", "safe_media", "safe_draw", "safe_image", "safe_num", "safe_phys", "safe_time", "safe_sys", "safe_mem", "safe_text", "safe_ui", "safe_layout", "safe_work", "safest", "unsafe", "unsafe_array", "unsafe_async", "unsafe_hint", "unsafe_layout", "unsafe_niche", "unsafe_ptr", "unsafe_slice", "unsafe_str", "unsafe_sync", "unsafe_syscall", "unsafe_thread", "nightly", "nightly_allocator", "nightly_autodiff", "nightly_bigint", "nightly_coro", "nightly_doc", "nightly_float", "nightly_simd", "nightly_stable", "nightly_stable_next1", "nightly_stable_next2", "nightly_stable_later", "dep_all", "alloc_deps", "linux_deps", "text_deps", "work_deps", "dep_allocator_api2", "dep_atomic", "dep_bumpalo", "dep_bytemuck", "dep_const_str", "dep_crossterm", "dep_hashbrown", "dep_jiff", "dep_js_sys", "dep_kira", "dep_libm", "dep_log", "dep_memchr", "dep_midir", "dep_miniquad", "dep_nc", "dep_portable_atomic", "dep_pyo3", "dep_rand_core", "dep_rayon", "dep_raw_cpuid", "dep_regex_lite", "dep_rkyv", "dep_rodio", "dep_rustix", "dep_safe_arch", "dep_serde", "dep_stringzilla", "dep_symphonia", "dep_sysinfo", "dep_tinyaudio", "dep_tokio", "dep_tracing", "dep_unicode_segmentation", "dep_unicode_width", "dep_wasm_bindgen", "dep_web_sys", "dep_wide", "dep_winnow"] }

254/300 (46 remaining), 133 visible, 121 hidden

alloc alloc_deps? dep_hashbrown? dep_jiff? std?

* Environment features *
------------------------------------------------------------------------------

Enables alloc of optional allocator-api2, extern_crate_alloc of optional bytemuck, alloc of optional jiff, optional memchr, optional rand_core ^0.6.4, optional rkyv, optional rustix, optional serde, and optional winnow

Affects ext::ExtAny.as_any_box, buffer::DstVecUsize, base::ColorBase.color_components_vec, vector::VecVector, point::VecPoints, num_trait::NumInt.int_factors, num_trait::NumInt.int_ref_factors, num_trait::NumInt.int_factors_proper, num_trait::NumInt.int_ref_factors_proper, num_trait::NumInt.int_factors_prime, num_trait::NumInt.int_ref_factors_prime, num_trait::NumInt.int_factors_prime_unique, num_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, traits::Unit.reduce_chain_i64, traits::Unit.reduce_chain_i128, other::IoRead.read_to_end

std dep_crossterm? dep_pyo3? dep_regex_lite? dep_sysinfo? = alloc

Enables std of optional allocator-api2, optional atomic, and optional bumpalo, std of optional jiff, optional js-sys, optional log, optional memchr, optional nc, optional rand_core ^0.6.4, optional raw-cpuid, optional regex-lite, optional rkyv, optional rustix, optional serde, optional tracing, optional wasm-bindgen, optional web-sys, optional wide, and optional winnow and extern_crate_std of optional bytemuck

bytemuck:

Enable features requiring items from extern crate std.

Affects reexports::HashMapStd, reexports::HashSetStd, ext::ExtFuture.block_on, fns::prime_number_theorem, traits::Unit.reduce, traits::Unit.reduce_chain

no_std

enables functionality incompatible with or substitute of std

all = code, data, lang, media, num, phys, sys, text, ui, work
  • Module features *

They set automatic compile flags named *··, used for reflection. For example, num·· will be set if any num submodule feature is enabled.

code all?
error

AllError, DataError, NumError, TextError…

data all? = hash
hash data?

HashFnv, HashFx

lang all?
media all? = audio, color, draw, font, image, midi
audio media?

Affects media::audio

draw media?

Affects media::draw

color media?

Affects media::color

font media?

Affects media::font

image media?

Affects media::image

midi media?

Affects media::midi

num all? = alg, geom, prim, rand, unit, wave
alg num?

algebra (linear & symbolic)

Affects num::alg

geom num?

geometry

Affects num::geom

prim num? = cast, join, split
cast prim?

PrimitiveCast

join prim?

PrimitiveJoin

split prim?

PrimitiveSplit

rand num?

random number generators

Affects num::rand

unit num?

unit prefixes

wave num?

wavelets

Affects num::wave

phys all? = time
time phys?
sys all? = io, mem
io sys?

no_std_io…

Enables io-std and io-util of optional tokio

mem sys? = bit
bit mem?

BitSize

Affects examples::enumset

linux linux_deps?

os

Affects os::linux

windows

Enables winrt of optional midir and windows of optional crossterm

crossterm:

Disables winapi dependencies from being included into the binary (SHOULD NOT be disabled on windows).

text all? text_deps? = ascii, fmt, str
ascii text?

AsciiChar

fmt text?

NumStr

str text?

Str, ExtStr, ExtString

ui all? = layout
layout ui?

Affects ui::layout

work all? work_deps?

Enables zeroable_atomics of optional bytemuck

bytemuck:

Implement Zeroable for std::sync::atomic types.

process

Enables process of optional tokio

sync

Enables sync of optional tokio

thread

Enables rt and rt-multi-thread of optional tokio

safe safest? = safe_code, safe_data, safe_lang, safe_media, safe_num, safe_phys, safe_sys, safe_text, safe_work
  • Safety features *

They are prefixed with either safe or unsafe. Safe features are associated to modules, and unsafe features to purposes.

Usage:

  1. enable the desired unsafe feature.
  2. don't enable the safe feature for that module.

The safest feature forbids unsafe transitively in dependencies (except for Rust's core, alloc and std).

In sync with ./build/features.rs::[UN]SAFE[ST] & ./src/lib.rs::safety) safe··

safe_code safe_data safe_lang safe?
safe_media safe? = safe_audio, safe_color, safe_draw, safe_font, safe_image
safe_audio safe_color safe_draw safe_media?
safe_font safe_image safe_media?
safe_num safe?
safe_phys safe? = safe_time

[1]

safe_time safe_phys?
safe_sys safe? = safe_io, safe_mem

[2]

safe_io safe_mem safe_sys?
safe_text safe?
safe_ui = safe_layout

[1]

safe_layout safe_ui?
safe_work safe?
safest = safe

safe_async

unsafe = unsafe_array, unsafe_async, unsafe_hint, unsafe_layout, unsafe_niche, unsafe_ptr, unsafe_slice, unsafe_str, unsafe_sync, unsafe_syscall, unsafe_thread

unsafe··

unsafe_array unsafe?

faster array initialization, UninitArray.

unsafe_async unsafe?

task_waker_noop, CoroRun.

Affects waker::task_waker_noop

unsafe_hint unsafe?

unreachable_unchecked, unchecked arithmetic.

unsafe_layout unsafe?

MemPod, DSTs in the stack, ExtAny::downcast*, Mem::*.

Affects ext::ExtAny.downcast_ref, ext::ExtAny.downcast_mut, data::dst, ext::ExtMem.mem_zeroed, ext::ExtMem.mem_transmute_copy, pod::MemPod

unsafe_niche unsafe?

unchecked niche constructors.

unsafe_ptr unsafe?

Pinned, pop methods without Clone, Ptr::*.

unsafe_slice unsafe?

extra slice methods, avoid bound checks.

Affects ext::ExtMem.mem_as_bytes, ext::ExtMem.mem_as_bytes_mut

unsafe_str unsafe?

unchecked utf-8 char and &str conversions.

unsafe_sync unsafe?

Send and Sync impls.

unsafe_syscall unsafe?

os syscalls.

unsafe_thread unsafe?

Logging::set_logger_racy, Env::{remove_var, set_var}.

nightly = nightly_allocator, nightly_autodiff, nightly_bigint, nightly_coro, nightly_doc, nightly_float, nightly_simd, nightly_stable
  • Nightly features *

They are prefixed with nightly_. Enabling any of these will set the nightly·· reflection flag.

Links

nightly_allocator nightly?

WAIT: allocator_api

Enables nightly of optional allocator-api2, allocator_api of optional bumpalo, nightly of optional hashbrown

nightly_autodiff nightly?

WAIT: autodiff autodiff

nightly_bigint nightly?

WAIT: bigint_helper_methods bigint_helper_methods

nightly_coro nightly?

WAIT: coroutines coroutines, coroutine_trait, iter_from_coroutine

nightly_doc nightly?

WAIT: doc_cfg WAIT: doc_notable_trait not(doc_auto_cfg)

nightly_float nightly?

WAIT: f16_and_f128 f16, f128

Enables nightly_float of optional bytemuck

nightly_simd nightly?

WAIT: portable_simd portable_simd

nightly_stable nightly? = nightly_stable_later, nightly_stable_next1, nightly_stable_next2

nightly features that should become stable soon enough.

nightly_stable_next1 nightly_stable?

1.85 (+edition 2024)

nightly_stable_next2 nightly_stable?

1.86

nightly_stable_later nightly_stable?

1.?? stable soon enough

_bit_u8

Affects examples::bitfield, examples::enumset

_char16

Affects definitions::char16

_char7

Affects definitions::char7

_char8

Affects definitions::char8

_destaque_u16

Affects definitions::DestaqueU16

_destaque_u32

Affects definitions::DestaqueU32

_destaque_u8

Affects definitions::DestaqueU8

_destaque_usize

Affects definitions::DestaqueUsize

_float_f64

Affects fns::prime_number_theorem, traits::Unit.reduce, traits::Unit.reduce_chain

_stack_u16

Affects definitions::StackU16

_stack_u32

Affects definitions::StackU32

_stack_u8

Affects definitions::StackU8

_stack_usize

Affects definitions::StackUsize

dep_all = dep_allocator_api2, dep_atomic, dep_bumpalo, dep_bytemuck, dep_const_str, dep_crossterm, dep_hashbrown, dep_jiff, dep_js_sys, dep_kira, dep_libm, dep_log, dep_memchr, dep_midir, dep_miniquad, dep_nc, dep_portable_atomic, dep_pyo3, dep_rand_core, dep_raw_cpuid, dep_rayon, dep_regex_lite, dep_rkyv, dep_rodio, dep_rustix, dep_safe_arch, dep_serde, dep_stringzilla, dep_symphonia, dep_sysinfo, dep_tinyaudio, dep_tokio, dep_tracing, dep_unicode_segmentation, dep_unicode_width, dep_wasm_bindgen, dep_web_sys, dep_wide, dep_winnow
  • Dependency features *

The names are prefixed with dep_, using underscores in place of dashes. They are associated to optional dependencies and groups of modules. Enabling any of these will set the dep·· reflection flag.

Links

In sync with ./config/dep_all.rs & ./src/_dep.rs

alloc_deps = alloc, dep_allocator_api2, dep_bumpalo

misc. groups of dependencies:

linux_deps = dep_atomic, dep_bytemuck, dep_nc, dep_rustix, linux
text_deps = dep_const_str, dep_memchr, dep_regex_lite, dep_stringzilla, dep_unicode_segmentation, dep_unicode_width, text
work_deps = dep_atomic, dep_portable_atomic, dep_rayon, dep_tokio, work
dep_allocator_api2 alloc_deps? dep_all?

standalone dependencies:

Enables allocator-api2, allocator-api2 of optional bumpalo and optional hashbrown

dep_atomic dep_all? linux_deps? work_deps?

work::sync

Enables atomic

Affects terminal::LINUX_TERMINAL_STATE

dep_bumpalo alloc_deps? dep_all?

sys::mem::alloc

Enables bumpalo

dep_bytemuck dep_all? linux_deps?

···

Enables bytemuck, bytemuck of optional safe_arch

Affects terminal::LINUX_TERMINAL_STATE

dep_const_str dep_all? text_deps?

text::str

Enables const-str ^0.5.7

dep_crossterm dep_all? = std

ui::term

Enables crossterm

dep_hashbrown dep_all? = alloc

Enables hashbrown, hashbrown of optional pyo3 and hashbrown-0_15 of optional rkyv

rkyv:

External crate support

dep_jiff dep_all? = alloc

phys::time

Enables jiff

dep_js_sys dep_all?

lang::js

Enables js-sys

dep_kira dep_all?

sys::sound

Enables kira

dep_libm dep_all?

num::float

Enables libm

dep_log dep_all?

sys::log

Enables log, log of optional tracing

dep_memchr dep_all? text_deps?

text:str

Enables memchr, simd of optional winnow

dep_midir dep_all?

media::midi

Enables midir

dep_miniquad dep_all?

sys::screen

Enables miniquad

dep_nc dep_all? linux_deps?

sys::os::linux

Enables nc

dep_portable_atomic dep_all? work_deps?

work::sync

Enables portable-atomic

dep_pyo3 dep_all? = std

lang::py

Enables pyo3

dep_rand_core dep_all?

num::rand

Enables rand_core ^0.6.4

dep_rayon dep_all? work_deps?

work::thread

Enables rayon, multithread of optional sysinfo

dep_raw_cpuid dep_all?

sys::arch

Enables raw-cpuid

dep_regex_lite dep_all? text_deps? = std

text::parse

Enables regex-lite

dep_rkyv dep_all?

data::serde

Enables rkyv

dep_rodio dep_all?

sys::sound

Enables rodio

dep_rustix dep_all? linux_deps?

sys::os

Enables rustix

dep_safe_arch dep_all?

sys::arch

Enables safe_arch

dep_serde dep_all?

Enables serde, serde of optional wide, serde of optional allocator-api2, optional bumpalo, and optional kira

dep_stringzilla dep_all? text_deps?

text::str

Enables stringzilla

dep_symphonia dep_all?

sys::sound

Enables symphonia, symphonia of optional kira and optional rodio

dep_sysinfo dep_all? = std

sys::

Enables sysinfo

dep_tinyaudio dep_all?

sys::sound

Enables tinyaudio

dep_tokio dep_all? work_deps?

work::async

Enables tokio

dep_tracing dep_all?

sys::log

Enables tracing

dep_unicode_segmentation dep_all? text_deps?

text::

Enables unicode-segmentation

dep_unicode_width dep_all? text_deps?

text::

Enables unicode-width

dep_wasm_bindgen dep_all?

lang

Enables wasm-bindgen

dep_web_sys dep_all?

ui::web

Enables web-sys

dep_wide dep_all?

...

Enables wide

dep_winnow dep_all?

text::parse

Enables winnow

Features from optional dependencies

41 (2 required, 39 optional)