cfdp_simplified/pdu/
error.rs1use std::string::FromUtf8Error;
2use thiserror::Error;
3
4pub type PDUResult<T> = Result<T, PDUError>;
5#[derive(Error, Debug)]
6pub enum PDUError {
8 #[error("Invalid Condition value: {0:}.")]
9 InvalidCondition(u8),
11
12 #[error("Invalid ChecksumType: {0:}.")]
13 InvalidChecksumType(u8),
15
16 #[error("Invalid Direction value: {0:}.")]
17 InvalidDirection(u8),
19
20 #[error("Invalid Directive value: {0:}.")]
21 InvalidDirective(u8),
23
24 #[error("Invalid Delivery Code: {0:}.")]
25 InvalidDeliveryCode(u8),
27
28 #[error("Invalid TransactionState: {0:}.")]
29 InvalidState(u8),
31
32 #[error("Invalid File Status: {0:}.")]
33 InvalidFileStatus(u8),
35
36 #[error("Invalid Transmission Mode {0:}.")]
37 InvalidTransmissionMode(u8),
39
40 #[error("Invalid Segment Control Mode {0:}.")]
41 InvalidSegmentControl(u8),
43
44 #[error("Invalid Transaction Status {0:}.")]
45 InvalidTransactionStatus(u8),
47
48 #[error("Invalid ACK SubDirective Code: {0:}.")]
49 InvalidACKDirectiveSubType(u8),
51
52 #[error("Invalid CCSDS Version Code: {0:}.")]
53 InvalidVersion(u8),
55
56 #[error("Invalid Fault Handler Code: {0:}.")]
57 InvalidFaultHandlerCode(u8),
59
60 #[error("Invalid PDU Type {0:}.")]
61 InvalidPDUType(u8),
63
64 #[error("Invalid CRC Flag {0:}.")]
65 InvalidCRCFlag(u8),
67
68 #[error("Invalid File Size Flag {0:}.")]
69 InvalidFileSizeFlag(u8),
71
72 #[error("Invalid Segment Metadata Flag {0:}.")]
73 InvalidSegmentMetadataFlag(u8),
75
76 #[error("CRC Failure on PDU. Expected 0x{0:X} Receieved 0x{1:X}")]
77 CRCFailure(u16, u16),
79
80 #[error("Error Reading PDU Buffer. {0:}")]
81 ReadError(#[from] std::io::Error),
83
84 #[error("Bad length for Variable Identifier (not a power a of 2) {0:}.")]
85 UnknownIDLength(u8),
87
88 #[error("Unable to decode filename. {0}")]
89 InvalidFileName(#[from] FromUtf8Error),
91
92 #[error("Unsupported feature. {0}")]
94 Unsupported(String),
95}