edjr 0.1.1

Elite Dangerous Journal Reader
Documentation
use {
    crate::elite::signal::{Signal, SignalType},
    serde::Deserialize,
};

#[derive(Debug, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct FssAllBodiesFoundEvent {
    count: u64,
    system_address: u64,
    system_name: String,
}

#[derive(Debug, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct FssBodySignalsEvent {
    #[serde(alias = "BodyID")]
    body_id: u64,
    body_name: String,
    system_address: u64,
    signals: Vec<Signal>,
}

#[derive(Debug, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct FssDiscoveryScanEvent {
    body_count: u64,
    non_body_count: u64,
    progress: f64,
    system_address: u64,
    system_name: String,
}

#[derive(Debug, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct FssSignalDiscoveredEvent {
    #[serde(default)]
    is_station: bool,
    opposing_power: Option<String>,
    signal_name: String,
    #[serde(alias = "SignalName_Localised")]
    signal_name_display: Option<String>,
    signal_type: Option<SignalType>,
    spawning_faction: Option<String>,
    #[serde(alias = "SpawningFaction_Localised")]
    spawning_faction_display: Option<String>,
    spawning_power: Option<String>,
    spawning_state: Option<String>,
    #[serde(alias = "SpawningState_Localised")]
    spawning_state_display: Option<String>,
    system_address: u64,
    threat_level: Option<u8>,
    time_remaining: Option<f64>,
    #[serde(alias = "USSType")]
    uss_type: Option<String>,
    #[serde(alias = "USSType_Localised")]
    uss_type_display: Option<String>,
}