pub struct MalformedPacketEvent {
pub raw: Vec<u8>,
pub raw_truncated: bool,
pub error: ParseError,
pub diagnostic: ErrorDiagnostic,
}Expand description
Codec-malformed packet observability event.
Fields§
§raw: Vec<u8>Original input bytes copied for application-owned evidence.
This is exact when raw_truncated is false and capped at
EVENT_RAW_BYTE_LIMIT otherwise.
raw_truncated: boolWhether raw was capped before copying.
error: ParseErrorCodec failure.
diagnostic: ErrorDiagnosticStable parse diagnostic metadata.
Implementations§
Source§impl MalformedPacketEvent
impl MalformedPacketEvent
Sourcepub const fn kind(&self) -> EngineEventKind
pub const fn kind(&self) -> EngineEventKind
Returns the stable event kind.
Examples found in repository?
examples/service_ingest.rs (line 31)
5fn main() -> Result<(), std::io::Error> {
6 let input = b"N0CALL>APRS:>service online\nN1CALL>APRS:~opaque\nbad packet\n";
7 let mut engine = Engine::new(Policy::strict());
8
9 let packets = LineTransport::new(input).packets_with_limit(MAX_PACKET_LEN)?;
10
11 for packet in packets {
12 match engine.process_event(packet) {
13 EngineEvent::Accepted(event) => {
14 println!(
15 "event={} semantic={}",
16 event.kind().code(),
17 event.packet.summary().semantic
18 );
19 }
20 EngineEvent::Rejected(event) => {
21 println!(
22 "event={} code={} remediation={}",
23 event.kind().code(),
24 event.diagnostic.code,
25 event.diagnostic.remediation
26 );
27 }
28 EngineEvent::Malformed(event) => {
29 println!(
30 "event={} code={} raw_len={} raw_truncated={} remediation={}",
31 event.kind().code(),
32 event.diagnostic.code,
33 event.raw.len(),
34 event.raw_truncated,
35 event.diagnostic.remediation
36 );
37 }
38 }
39 }
40
41 let counters = engine.counters();
42 println!(
43 "summary accepted={} rejected={} malformed={}",
44 counters.accepted, counters.rejected, counters.malformed
45 );
46
47 Ok(())
48}Trait Implementations§
Source§impl Clone for MalformedPacketEvent
impl Clone for MalformedPacketEvent
Source§fn clone(&self) -> MalformedPacketEvent
fn clone(&self) -> MalformedPacketEvent
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 MalformedPacketEvent
impl Debug for MalformedPacketEvent
Source§impl PartialEq for MalformedPacketEvent
impl PartialEq for MalformedPacketEvent
Source§fn eq(&self, other: &MalformedPacketEvent) -> bool
fn eq(&self, other: &MalformedPacketEvent) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Eq for MalformedPacketEvent
impl StructuralPartialEq for MalformedPacketEvent
Auto Trait Implementations§
impl Freeze for MalformedPacketEvent
impl RefUnwindSafe for MalformedPacketEvent
impl Send for MalformedPacketEvent
impl Sync for MalformedPacketEvent
impl Unpin for MalformedPacketEvent
impl UnsafeUnpin for MalformedPacketEvent
impl UnwindSafe for MalformedPacketEvent
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