pub enum Error {
BufferTooShort,
InvalidEntryType(u8),
InvalidOptionType(u8),
InvalidProtocol(u8),
LengthOverflow,
ConfigurationError(ConfigError),
}Expand description
Error type for SOME/IP-SD parsing and validation operations.
Represents different error conditions that can occur during parsing, validation, or serialization of SOME/IP-SD wire format data.
§Examples
use someip_sd_wire::error::Error;
use someip_sd_wire::packet::Packet;
let buffer = [0u8; 4]; // Too small for a valid SD packet
let result = Packet::new_checked(&buffer[..]);
assert_eq!(result, Err(Error::BufferTooShort));Variants§
BufferTooShort
Buffer is too short for the expected data structure.
This occurs when:
- Packet buffer is smaller than minimum SD header (12 bytes)
- Entry buffer is smaller than entry size (16 bytes)
- Option buffer is smaller than expected option size
- Declared lengths exceed available buffer space
InvalidEntryType(u8)
Invalid entry type value.
Entry type must be one of:
- 0x00: FindService
- 0x01: OfferService
- 0x06: Subscribe
- 0x07: SubscribeAck
InvalidOptionType(u8)
Invalid option type value.
Option type must be one of the defined option types:
- 0x01: Configuration
- 0x02: LoadBalancing
- 0x04: IPv4Endpoint
- 0x06: IPv6Endpoint
- 0x14: IPv4Multicast
- 0x16: IPv6Multicast
- 0x24: IPv4SdEndpoint
- 0x26: IPv6SdEndpoint
InvalidProtocol(u8)
Invalid transport protocol value.
Transport protocol must be:
- 0x06: TCP
- 0x11: UDP
LengthOverflow
Length field overflow.
This occurs when:
- Entries length + options length would overflow buffer
- Length fields have inconsistent values
- Option length field exceeds remaining buffer
ConfigurationError(ConfigError)
Invalid configuration entry format.
Configuration entries must follow DNS-SD TXT record format. This variant wraps configuration-specific errors.
Trait Implementations§
Source§impl From<ConfigError> for Error
impl From<ConfigError> for Error
Source§fn from(err: ConfigError) -> Self
fn from(err: ConfigError) -> Self
Converts to this type from the input type.
impl Copy for Error
impl Eq for Error
impl StructuralPartialEq for Error
Auto Trait Implementations§
impl Freeze for Error
impl RefUnwindSafe for Error
impl Send for Error
impl Sync for Error
impl Unpin for Error
impl UnwindSafe for Error
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more