pub struct UnsecuredHeader {
pub basic: BasicHeader,
pub common: CommonHeader,
pub extended: Option<ExtendedHeader>,
}Expand description
Helper struct for decoding unsecured GeoNetworking headers from JSON. This crate focuses on zero-copy decoding from binary packets, therefore, JSON deserialization features are limited to a subset of GeoNetworking types.
Fields§
§basic: BasicHeader§common: CommonHeader§extended: Option<ExtendedHeader>Implementations§
Source§impl UnsecuredHeader
impl UnsecuredHeader
Sourcepub fn from_json(json: &str) -> Result<Self, DecodeError<&str>>
pub fn from_json(json: &str) -> Result<Self, DecodeError<&str>>
Tries to deserialize an unsecured GeoNetworking header from JSON.
§Usage
let json_header = r#"{"basic":{"version":1,"next_header":"CommonHeader","reserved":0,"lifetime":80,"remaining_hop_limit":1},"secured":null,"common":{"next_header":"BTPB","reserved_1":0,"header_type_and_subtype":{"TopologicallyScopedBroadcast":"SingleHop"},"traffic_class":{"store_carry_forward":false,"channel_offload":false,"traffic_class_id":2},"flags":[false,false,false,false,false,false,false,false],"payload_length":8,"maximum_hop_limit":1,"reserved_2":0},"extended":{"SHB":{"source_position_vector":{"gn_address":{"manually_configured":false,"station_type":"Unknown","reserved":262,"address":[0,96,224,105,87,141]},"timestamp":542947520,"latitude":535574568,"longitude":99765648,"position_accuracy":false,"speed":680,"heading":2122},"media_dependent_data":[127,0,184,0]}}}"#;
let payload: &'static [u8] = &[0x00, 0x01, 0x02, 0x03, 0x00, 0x01, 0x02, 0x03];
let unsecured_header = UnsecuredHeader::from_json(json_header).unwrap();
let unsecured_packet: Packet = unsecured_header.with_payload(payload).expect("REASON");§Errors
Returns a DecodeError when parsing failed
Sourcepub fn with_payload(self, payload: &[u8]) -> Result<Packet<'_>, EncodeError>
pub fn with_payload(self, payload: &[u8]) -> Result<Packet<'_>, EncodeError>
Converts the UnsecuredHeader helper struct into a regular Packet::Unsecured.
Takes a payload of the length specified in the GeoNetworking’s Common Header.
§Errors
Returns an EncodeError when parsing failed
Trait Implementations§
Source§impl Clone for UnsecuredHeader
impl Clone for UnsecuredHeader
Source§fn clone(&self) -> UnsecuredHeader
fn clone(&self) -> UnsecuredHeader
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for UnsecuredHeader
impl Debug for UnsecuredHeader
Source§impl<'de> Deserialize<'de> for UnsecuredHeader
impl<'de> Deserialize<'de> for UnsecuredHeader
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for UnsecuredHeader
impl PartialEq for UnsecuredHeader
Source§impl Serialize for UnsecuredHeader
impl Serialize for UnsecuredHeader
impl StructuralPartialEq for UnsecuredHeader
Auto Trait Implementations§
impl Freeze for UnsecuredHeader
impl RefUnwindSafe for UnsecuredHeader
impl Send for UnsecuredHeader
impl Sync for UnsecuredHeader
impl Unpin for UnsecuredHeader
impl UnsafeUnpin for UnsecuredHeader
impl UnwindSafe for UnsecuredHeader
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