pub struct RawPacket { /* private fields */ }Expand description
Original packet bytes retained without normalization or lossy conversion.
Implementations§
Source§impl RawPacket
impl RawPacket
Sourcepub fn as_bytes(&self) -> &[u8] ⓘ
pub fn as_bytes(&self) -> &[u8] ⓘ
Returns the original packet bytes exactly as supplied to the parser.
Examples found in repository?
examples/service_toolkit.rs (line 29)
10fn main() -> Result<(), libaprs_engine::ParseError> {
11 let mut engine = Engine::default();
12 let mut duplicates = DuplicateWindow::new(128);
13 let mut rate = PacketRateBudget::new(100);
14 let blocked = SemanticBlocklist::new(&[SemanticFamily::Unsupported, SemanticFamily::Malformed]);
15
16 for packet_bytes in [b"N0CALL>APRS:>service".as_slice()] {
17 if rate.try_consume() == RateLimitDecision::Limited {
18 continue;
19 }
20 if duplicates.observe(packet_bytes) == DuplicateDecision::Duplicate {
21 continue;
22 }
23
24 let packet = parse_packet(packet_bytes)?;
25 if blocked.rejects(&packet.aprs_data()) {
26 continue;
27 }
28
29 let _event = engine.process_event(packet.raw().as_bytes());
30 }
31
32 Ok(())
33}More examples
examples/encode_packets.rs (line 16)
8fn main() -> Result<(), Box<dyn std::error::Error>> {
9 let path = [b"APRS".as_slice(), b"WIDE1-1".as_slice()];
10
11 let status = encode_status(b"N0CALL", &path, b"encoder example")?;
12 assert_eq!(
13 parse_packet(&status)
14 .map_err(|error| std::io::Error::new(std::io::ErrorKind::InvalidData, error.code()))?
15 .raw()
16 .as_bytes(),
17 b"N0CALL>APRS,WIDE1-1:>encoder example"
18 );
19
20 let position = encode_uncompressed_position(
21 b"N0CALL",
22 &path,
23 UncompressedPositionEncoding {
24 messaging: false,
25 latitude: b"4903.50N",
26 symbol_table: b'/',
27 longitude: b"07201.75W",
28 symbol_code: b'-',
29 comment: b"encoded",
30 },
31 )?;
32 assert_eq!(
33 parse_packet(&position)
34 .map_err(|error| std::io::Error::new(std::io::ErrorKind::InvalidData, error.code()))?
35 .summary()
36 .semantic,
37 "position"
38 );
39
40 let telemetry = encode_telemetry(b"N0CALL", &path, 1, [111, 222, 33, 44, 55], None)?;
41 assert_eq!(
42 parse_packet(&telemetry)
43 .map_err(|error| std::io::Error::new(std::io::ErrorKind::InvalidData, error.code()))?
44 .summary()
45 .semantic,
46 "telemetry"
47 );
48
49 Ok(())
50}Trait Implementations§
impl Eq for RawPacket
impl StructuralPartialEq for RawPacket
Auto Trait Implementations§
impl Freeze for RawPacket
impl RefUnwindSafe for RawPacket
impl Send for RawPacket
impl Sync for RawPacket
impl Unpin for RawPacket
impl UnsafeUnpin for RawPacket
impl UnwindSafe for RawPacket
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