yang_rs/
error.rs

1//
2// YANG - error.
3//  Copyright (C) 2021 Toshiaki Takada
4//
5
6use quick_error::*;
7
8quick_error! {
9    #[derive(Debug)]
10    pub enum YangError {
11        IoError(s: String) {
12            display("io::Error: {}", s)
13        }
14        InvalidComment {
15            display("Invalid comment")
16        }
17        InvalidString(s: String) {
18            display("Invalid string '{}'", s)
19        }
20//        InvalidIdentifier {
21//            display("Invalid identifier")
22//        }
23        UnexpectedEof {
24            display("Unexpected end of file")
25        }
26        UnexpectedToken(s: String) {
27            display("Unexpected token {}", s)
28        }
29        UnexpectedStatement(s: String) {
30            display("Unexpected statement: {}", s)
31        }
32        MissingStatement(s: &'static str) {
33            display("Missing statement {}", s)
34        }
35        TooFewStatement(s: String) {
36            display("Too few statement {}", s)
37        }
38        TooManyStatements(s: String) {
39            display("Too many statements {}", s)
40        }
41        ArgumentParseError(s: &'static str) {
42            display("Argument parse error {}", s)
43        }
44        PlaceHolder {
45            display("placeholder")
46        }
47    }
48}
49
50use std::fmt;
51
52#[derive(Debug)]
53pub struct ArgError {
54    pub str: &'static str,
55}
56
57impl fmt::Display for ArgError {
58    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
59        write!(f, "Arg error: {}", self.str)
60    }
61}
62
63impl ArgError {
64    pub fn new(str: &'static str) -> ArgError {
65        ArgError { str }
66    }
67}