pub struct Engine { /* private fields */ }Expand description
Parser and policy orchestration engine.
Implementations§
Source§impl Engine
impl Engine
Sourcepub fn new(policy: Policy) -> Self
pub fn new(policy: Policy) -> Self
Creates an engine with the provided policy.
Examples found in repository?
examples/process_file.rs (line 10)
3fn main() -> std::io::Result<()> {
4 let Some(path) = std::env::args().nth(1) else {
5 eprintln!("usage: process_file <packets.aprs>");
6 std::process::exit(2);
7 };
8
9 let input = std::fs::read(path)?;
10 let mut engine = Engine::new(Policy::strict());
11
12 for packet_bytes in LineTransport::new(&input).packets() {
13 match engine.process(packet_bytes) {
14 EngineResult::Accepted { packet } => println!("{}", packet.to_json()),
15 EngineResult::Rejected { reason, .. } => eprintln!("rejected: {}", reason.code()),
16 EngineResult::ParseError(error) => eprintln!("malformed: {}", error.code()),
17 }
18 }
19
20 Ok(())
21}Sourcepub fn process(&mut self, input: &[u8]) -> EngineResult
pub fn process(&mut self, input: &[u8]) -> EngineResult
Processes one packet through codec, semantics, and policy.
Examples found in repository?
examples/process_file.rs (line 13)
3fn main() -> std::io::Result<()> {
4 let Some(path) = std::env::args().nth(1) else {
5 eprintln!("usage: process_file <packets.aprs>");
6 std::process::exit(2);
7 };
8
9 let input = std::fs::read(path)?;
10 let mut engine = Engine::new(Policy::strict());
11
12 for packet_bytes in LineTransport::new(&input).packets() {
13 match engine.process(packet_bytes) {
14 EngineResult::Accepted { packet } => println!("{}", packet.to_json()),
15 EngineResult::Rejected { reason, .. } => eprintln!("rejected: {}", reason.code()),
16 EngineResult::ParseError(error) => eprintln!("malformed: {}", error.code()),
17 }
18 }
19
20 Ok(())
21}Trait Implementations§
impl Eq for Engine
impl StructuralPartialEq for Engine
Auto Trait Implementations§
impl Freeze for Engine
impl RefUnwindSafe for Engine
impl Send for Engine
impl Sync for Engine
impl Unpin for Engine
impl UnsafeUnpin for Engine
impl UnwindSafe for Engine
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