can_dbc/ast/
env_type.rs

1use can_dbc_pest::Rule;
2
3use crate::DbcError;
4
5/// `env_var_type = '0' | '1' | '2' ; (* 0=integer, 1=float, 2=string *)`
6#[derive(Copy, Clone, Debug, PartialEq)]
7#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
8pub enum EnvType {
9    Integer,
10    Float,
11    String,
12}
13
14impl TryFrom<Rule> for EnvType {
15    type Error = DbcError;
16
17    fn try_from(value: Rule) -> Result<Self, Self::Error> {
18        match value {
19            Rule::env_var_type_int => Ok(Self::Integer),
20            Rule::env_var_type_float => Ok(Self::Float),
21            Rule::env_var_type_string => Ok(Self::String),
22            v => Err(DbcError::UnknownRule(v)),
23        }
24    }
25}