dis-rs 0.13.0

An implementation of the Distributed Interactive Simulation protocol (IEEE-1278.1) in Rust. This main crate contains PDU implementations and facilities to read/write PDUs from Rust data structures to the wire format and vice versa. It supports versions 6 and 7 of the protocol.
Documentation
use crate::enumerations::{
    ActiveInterrogationIndicator, CoupledExtensionIndicator, DetonationTypeIndicator,
    FireTypeIndicator, IffSimulationMode, IntercomAttachedIndicator, LvcIndicator,
    RadioAttachedIndicator, TransferredEntityIndicator,
};
use crate::v7::model::PduStatus;

pub fn build_pdu_status_cei_lvc_tei(
    cei: CoupledExtensionIndicator,
    lvc: LvcIndicator,
    tei: TransferredEntityIndicator,
) -> PduStatus {
    PduStatus {
        transferred_entity_indicator: Some(tei),
        lvc_indicator: Some(lvc),
        coupled_extension_indicator: Some(cei),
        fire_type_indicator: None,
        detonation_type_indicator: None,
        radio_attached_indicator: None,
        intercom_attached_indicator: None,
        iff_simulation_mode: None,
        active_interrogation_indicator: None,
    }
}

pub fn build_pdu_status_fti_cei_lvc(
    fti: FireTypeIndicator,
    cei: CoupledExtensionIndicator,
    lvc: LvcIndicator,
) -> PduStatus {
    PduStatus {
        transferred_entity_indicator: None,
        lvc_indicator: Some(lvc),
        coupled_extension_indicator: Some(cei),
        fire_type_indicator: Some(fti),
        detonation_type_indicator: None,
        radio_attached_indicator: None,
        intercom_attached_indicator: None,
        iff_simulation_mode: None,
        active_interrogation_indicator: None,
    }
}

pub fn build_pdu_status_dti_cei_lvc(
    dti: DetonationTypeIndicator,
    cei: CoupledExtensionIndicator,
    lvc: LvcIndicator,
) -> PduStatus {
    PduStatus {
        transferred_entity_indicator: None,
        lvc_indicator: Some(lvc),
        coupled_extension_indicator: Some(cei),
        fire_type_indicator: None,
        detonation_type_indicator: Some(dti),
        radio_attached_indicator: None,
        intercom_attached_indicator: None,
        iff_simulation_mode: None,
        active_interrogation_indicator: None,
    }
}

pub fn build_pdu_status_cei_lvc(cei: CoupledExtensionIndicator, lvc: LvcIndicator) -> PduStatus {
    PduStatus {
        transferred_entity_indicator: None,
        lvc_indicator: Some(lvc),
        coupled_extension_indicator: Some(cei),
        fire_type_indicator: None,
        detonation_type_indicator: None,
        radio_attached_indicator: None,
        intercom_attached_indicator: None,
        iff_simulation_mode: None,
        active_interrogation_indicator: None,
    }
}

pub fn build_pdu_status_rai_cei_lvc_tei(
    rai: RadioAttachedIndicator,
    cei: CoupledExtensionIndicator,
    lvc: LvcIndicator,
    tei: TransferredEntityIndicator,
) -> PduStatus {
    PduStatus {
        transferred_entity_indicator: Some(tei),
        lvc_indicator: Some(lvc),
        coupled_extension_indicator: Some(cei),
        fire_type_indicator: None,
        detonation_type_indicator: None,
        radio_attached_indicator: Some(rai),
        intercom_attached_indicator: None,
        iff_simulation_mode: None,
        active_interrogation_indicator: None,
    }
}

pub fn build_pdu_status_aii_ism_cei_lvc_tei(
    aii: ActiveInterrogationIndicator,
    ism: IffSimulationMode,
    cei: CoupledExtensionIndicator,
    lvc: LvcIndicator,
    tei: TransferredEntityIndicator,
) -> PduStatus {
    PduStatus {
        transferred_entity_indicator: Some(tei),
        lvc_indicator: Some(lvc),
        coupled_extension_indicator: Some(cei),
        fire_type_indicator: None,
        detonation_type_indicator: None,
        radio_attached_indicator: None,
        intercom_attached_indicator: None,
        iff_simulation_mode: Some(ism),
        active_interrogation_indicator: Some(aii),
    }
}

pub fn build_pdu_status_iai_cei_lvc_tei(
    iai: IntercomAttachedIndicator,
    cei: CoupledExtensionIndicator,
    lvc: LvcIndicator,
    tei: TransferredEntityIndicator,
) -> PduStatus {
    PduStatus {
        transferred_entity_indicator: Some(tei),
        lvc_indicator: Some(lvc),
        coupled_extension_indicator: Some(cei),
        fire_type_indicator: None,
        detonation_type_indicator: None,
        radio_attached_indicator: None,
        intercom_attached_indicator: Some(iai),
        iff_simulation_mode: None,
        active_interrogation_indicator: None,
    }
}

pub fn build_pdu_status_lvc(lvc: LvcIndicator) -> PduStatus {
    PduStatus {
        transferred_entity_indicator: None,
        lvc_indicator: Some(lvc),
        coupled_extension_indicator: None,
        fire_type_indicator: None,
        detonation_type_indicator: None,
        radio_attached_indicator: None,
        intercom_attached_indicator: None,
        iff_simulation_mode: None,
        active_interrogation_indicator: None,
    }
}