synapse-rs 1.1.0

A standardized metric system (Vortex, Radiance, Axon) to evaluate real-world network quality beyond simple speed tests.
Documentation
//! Wireless signal-only sample (no speed-test fields).
//!
//! Run with: `cargo run --example radiance`
//! Optional JSON dump: `cargo run --example radiance --features serde`

use synapse_rs::{NetworkData, ScoreBand};

fn main() {
    let measure = NetworkData::new()
        .with_rssi_dbm(-80.0)
        .with_noise_dbm(-100.0)
        .with_channel_width_mhz(20.0);

    print_scores(&measure);

    #[cfg(feature = "serde")]
    if let Ok(json) = serde_json::to_string_pretty(&measure) {
        println!("\nStats (JSON):\n{json}");
    }
}

fn print_scores(measure: &NetworkData) {
    match measure.try_vortex() {
        Ok(v) => println!("Vortex   : {v:.2} ({})", ScoreBand::from_score(v)),
        Err(e) => println!("Vortex   : N/A ({e})"),
    }

    match measure.try_radiance() {
        Ok(r) => println!("Radiance : {r:.2}"),
        Err(e) => println!("Radiance : N/A ({e})"),
    }

    println!("--------------------");

    match measure.try_axon() {
        Ok(a) => println!("AXON     : {a:.2} ({})", ScoreBand::from_score(a)),
        Err(e) => println!("AXON     : N/A ({e})"),
    }
}