Error

Enum Error 

Source
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 Clone for Error

Source§

fn clone(&self) -> Error

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Error

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for Error

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl From<ConfigError> for Error

Source§

fn from(err: ConfigError) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for Error

Source§

fn eq(&self, other: &Error) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Error

Source§

impl Eq for Error

Source§

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.