mylittleindicators 0.1.8

Multi-stream financial indicators library — 556 bar indicators + 21 event primitives across 35 categories. Consumes 27 stream kinds from digdigdig3 exchange connectors: OHLCV bars, ticks, orderbook (snapshot/delta/L3), funding/predicted funding/funding settlement, mark price, index price, open interest, liquidations, ticker, agg trades, long/short ratio, option greeks, volatility index, historical volatility, basis (derived), composite index, settlement events, block trades, insurance fund, risk limit, market warning, and three kline-family variants. Live-verified on 12 exchanges (89% pass-rate on a 150s BTC slice).
Documentation
//! divergence_catalog.rs — legacy Div variants removed; catalog is now empty.
//!
//! Divergence detection is handled by `events::Divergence` and `events::SwingDetection`.

use crate::catalog::IndicatorSignature;
use crate::catalog::IndicatorCategory;

use once_cell::sync::Lazy;
use std::collections::HashMap;

/// Category for all indicators in this module
pub const CATEGORY: IndicatorCategory = IndicatorCategory::Divergence;

const BASE_CATALOG: &[(&str, fn() -> IndicatorSignature)] = &[];

/// Expanded catalog (empty — all Div variants removed)
pub static DIVERGENCE_CATALOG: Lazy<HashMap<String, fn() -> IndicatorSignature>> =
    Lazy::new(HashMap::new);

/// Get indicator signature by ID
pub fn get_signature(id: &str) -> Option<IndicatorSignature> {
    DIVERGENCE_CATALOG.get(id).map(|f| f())
}

/// Get all indicator IDs in this category
pub fn all_indicator_ids() -> Vec<&'static str> {
    BASE_CATALOG.iter().map(|(id, _)| *id).collect()
}

/// Get count of indicators in this category
pub fn count() -> usize {
    BASE_CATALOG.len()
}