errors/
errors.rs

1// vim: set expandtab ts=4 sw=4:
2extern crate clickhouse_sql_parser;
3
4pub use nom::{
5    self,
6    Err as NomErr,
7    error::ErrorKind,
8};
9
10#[derive(Debug, PartialEq)]
11pub enum Error {
12    Incomplete(nom::Needed),
13    Error(ErrorKind),
14    Failure(ErrorKind),
15}
16
17impl<I> From<NomErr<(I, ErrorKind)>> for Error {
18    fn from(e: NomErr<(I, ErrorKind)>) -> Error {
19        match e {
20            NomErr::Incomplete(n) => Error::Incomplete(n),
21            NomErr::Error((_, k)) => Error::Error(k),
22            NomErr::Failure((_, k)) => Error::Failure(k),
23        }
24    }
25}
26
27fn test() {
28    match clickhouse_sql_parser::sql_query("create table a ( i uint8 ) ENGINE=memory".as_bytes()) {
29        Ok((_, _)) => println!("Ok"),
30        Err(e) => println!("Error: {:?}", Error::from(e)),
31    }
32}
33
34fn main() {
35    test();
36}
37
38#[cfg(test)]
39mod tests {
40    use super::*;
41
42    #[test]
43    fn it_works() {
44        test();
45        assert!(true);
46    }
47}