dasp_envelope/lib.rs
1//! An abstraction supporting different kinds of envelope detection.
2//!
3//! - The [**Detect**](./trait.Detect.html) trait provides an abstraction for generalising over
4//! types of envelope detection.
5//! - The [**Detector**](./struct.Detector.html) type allows for applying a **Detect**
6//! implementation in order to detect the envelope of a signal.
7//!
8//! See the `dasp_signal` crate (or `dasp::signal` module) **SignalWindow** trait for a convenient
9//! way to detect envelopes over arbitrary signals.
10//!
11//! ### Optional Features
12//!
13//! - The **peak** feature (or **envelope-peak** feature if using `dasp`) provides a peak envelope
14//! detection implementation.
15//! - The **rms** feature (or **envelope-rms** feature if using `dasp`) provides an RMS envelope
16//! detection implementation.
17//!
18//! ### no_std
19//!
20//! If working in a `no_std` context, you can disable the default **std** feature with
21//! `--no-default-features`.
22//!
23//! To enable all of the above features in a `no_std` context, enable the **all-no-std** feature.
24
25#![cfg_attr(not(feature = "std"), no_std)]
26#![cfg_attr(not(feature = "std"), feature(core_intrinsics))]
27
28pub mod detect;
29
30pub use self::detect::{Detect, Detector};