use bytes::Bytes; #[derive(PartialEq, Debug, Clone)] pub struct MultiPart { payload: Bytes, } impl From for MultiPart { fn from(value: Bytes) -> Self { MultiPart { payload: value } } } impl core::fmt::Display for MultiPart { fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { f.write_fmt(format_args!("Multipart isn't defined.")) } } // Tests for std operations #[cfg(test)] mod tests { use crate::{packet::*, packet_content::PacketContent}; use core::str::FromStr; use hex::decode; use tinyvec::ArrayVec; use super::*; #[test] fn multipart() { let sample = "2A0013E8C59624"; let lhs_packet = Packet { route_type: RouteType::Direct, version: PayloadVersion::VersionOne, path: ArrayVec::new(), transport: [0, 0], raw_content: Bytes::copy_from_slice(&decode("13E8C59624").unwrap()), content: PacketContent::Multipart(MultiPart { payload: Bytes::copy_from_slice(&decode("13E8C59624").unwrap()), }), incomplete: false, }; let rhs_packet = Packet::from_str(sample).unwrap(); assert_eq!(lhs_packet, rhs_packet); #[cfg(feature = "std")] assert_eq!( format!("{}", lhs_packet), " Direct | v1 | | [] | | MULTIPART | Multipart isn't defined." ); } }