pub struct PolicyRejectedPacketEvent {
pub packet: ParsedPacket,
pub reason: PolicyRejection,
pub diagnostic: ErrorDiagnostic,
}Expand description
Policy-rejected packet observability event.
Fields§
§packet: ParsedPacketParsed packet with exact raw bytes preserved.
reason: PolicyRejectionPolicy rejection reason.
diagnostic: ErrorDiagnosticStable policy diagnostic metadata.
Implementations§
Source§impl PolicyRejectedPacketEvent
impl PolicyRejectedPacketEvent
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 23)
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 PolicyRejectedPacketEvent
impl Clone for PolicyRejectedPacketEvent
Source§fn clone(&self) -> PolicyRejectedPacketEvent
fn clone(&self) -> PolicyRejectedPacketEvent
Returns a duplicate of the value. Read more
1.0.0 · 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 PolicyRejectedPacketEvent
impl Debug for PolicyRejectedPacketEvent
impl StructuralPartialEq for PolicyRejectedPacketEvent
Auto Trait Implementations§
impl Freeze for PolicyRejectedPacketEvent
impl RefUnwindSafe for PolicyRejectedPacketEvent
impl Send for PolicyRejectedPacketEvent
impl Sync for PolicyRejectedPacketEvent
impl Unpin for PolicyRejectedPacketEvent
impl UnsafeUnpin for PolicyRejectedPacketEvent
impl UnwindSafe for PolicyRejectedPacketEvent
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