embedded_error_handling/
embedded_error_handling.rs1#![allow(dead_code)]
5
6extern crate at_parser_rs;
7
8use at_parser_rs::{Args, AtError};
9
10macro_rules! dummy_at_modules {
12 ($($name:expr => $module:expr),* $(,)?) => {
13 };
16}
17
18dummy_at_modules! {
19 "CMD1" => 1,
20 "CMD2" => 2,
21}
22
23fn handle_at_command<'a>(cmd: &str, args: &'a str) -> Result<&'a str, AtError> {
25 match cmd {
26 "CMD1" => {
27 let a = Args { raw: args };
28 a.get(0).ok_or(AtError::InvalidArgs)
29 }
30 "CMD2" => Ok("OK"),
31 _ => Err(AtError::UnknownCommand),
32 }
33}
34
35fn example_usage() -> &'static str {
37 match handle_at_command("CMD1", "foo,bar") {
38 Ok(val) => val,
39 Err(_) => "Errore",
40 }
41}
42
43fn main() {
45 let _result = example_usage();
47}