/*! ferro_ta_core — Pure Rust indicator library. This crate contains all indicator implementations as pure functions operating on `&[f64]` slices and returning `Vec`. It has **no dependency on PyO3 or numpy** so it can be used from any Rust project, or compiled to WASM / Node.js via napi-rs without dragging in Python bindings. The Python wheel (`ferro_ta` PyPI package) is built from a thin binding crate that calls into this core and converts NumPy arrays to/from Rust slices. # Two-layer architecture The root crate (`ferro_ta`) contains PyO3 `#[pyfunction]` wrappers that convert numpy arrays to `&[f64]` and delegate to this core crate. # Usage (Rust) ```rust use ferro_ta_core::overlap; let close = vec![1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]; let sma = overlap::sma(&close, 3); assert!(sma[0].is_nan()); assert!((sma[2] - 2.0).abs() < 1e-10); ``` */ pub mod aggregation; pub mod alerts; pub mod attribution; pub mod backtest; pub mod batch; pub mod chunked; pub mod commission; pub mod crypto; pub mod currency; pub mod cycle; pub mod extended; pub mod futures; pub mod math; pub mod math_ops; pub mod momentum; pub mod options; pub mod overlap; pub mod pattern; pub mod portfolio; pub mod price_transform; pub mod regime; pub mod resampling; pub mod signals; pub mod statistic; pub mod streaming; pub mod volatility; pub mod volume;