dis_rs/common/repair_complete/
parser.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
use crate::common::model::PduBody;
use crate::common::parser::entity_id;
use crate::enumerations::RepairCompleteRepair;
use crate::repair_complete::model::RepairComplete;
use nom::number::complete::be_u16;
use nom::IResult;

pub(crate) fn repair_complete_body(input: &[u8]) -> IResult<&[u8], PduBody> {
    let (input, receiving_id) = entity_id(input)?;
    let (input, repairing_id) = entity_id(input)?;
    let (input, repair) = be_u16(input)?;
    let repair = RepairCompleteRepair::from(repair);
    let (input, _padding) = be_u16(input)?;

    let body = RepairComplete::builder()
        .with_receiving_id(receiving_id)
        .with_repairing_id(repairing_id)
        .with_repair(repair)
        .build();

    Ok((input, body.into_pdu_body()))
}