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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use crate::common::model::EntityType;
use crate::enumerations::EntityCapabilities;
use crate::v7::entity_state::entity_capabilities_from_bytes;
use nom::number::complete::be_u32;
use nom::IResult;

pub fn entity_capabilities(
    entity_type: EntityType,
) -> impl Fn(&[u8]) -> IResult<&[u8], EntityCapabilities> {
    move |input: &[u8]| {
        let (input, capabilities) = be_u32(input)?;
        let capabilities = entity_capabilities_from_bytes(capabilities, &entity_type);

        Ok((input, capabilities))
    }
}