fastn_resolved/evalexpr/token/
display.rs

1use std::fmt;
2
3use fastn_resolved::evalexpr::token::{PartialToken, Token};
4
5impl fmt::Display for Token {
6    fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> {
7        use self::Token::*;
8        match self {
9            Plus => write!(f, "+"),
10            Minus => write!(f, "-"),
11            Star => write!(f, "*"),
12            Slash => write!(f, "/"),
13            Percent => write!(f, "%"),
14            Hat => write!(f, "^"),
15
16            // Logic
17            Eq => write!(f, "=="),
18            Neq => write!(f, "!="),
19            Gt => write!(f, ">"),
20            Lt => write!(f, "<"),
21            Geq => write!(f, ">="),
22            Leq => write!(f, "<="),
23            And => write!(f, "&&"),
24            Or => write!(f, "||"),
25            Not => write!(f, "!"),
26
27            // Precedence
28            LBrace => write!(f, "("),
29            RBrace => write!(f, ")"),
30
31            // Assignment
32            Assign => write!(f, "="),
33            PlusAssign => write!(f, "+="),
34            MinusAssign => write!(f, "-="),
35            StarAssign => write!(f, "*="),
36            SlashAssign => write!(f, "/="),
37            PercentAssign => write!(f, "%="),
38            HatAssign => write!(f, "^="),
39            AndAssign => write!(f, "&&="),
40            OrAssign => write!(f, "||="),
41
42            // Special
43            Comma => write!(f, ","),
44            Semicolon => write!(f, ";"),
45
46            // Values => write!(f, ""), Variables and Functions
47            Identifier(identifier) => identifier.fmt(f),
48            Float(float) => float.fmt(f),
49            Int(int) => int.fmt(f),
50            Boolean(boolean) => boolean.fmt(f),
51            String(string) => fmt::Debug::fmt(string, f),
52        }
53    }
54}
55
56impl fmt::Display for PartialToken {
57    fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> {
58        use self::PartialToken::*;
59        match self {
60            Token(token) => token.fmt(f),
61            Literal(literal) => literal.fmt(f),
62            Whitespace => write!(f, " "),
63            Plus => write!(f, "+"),
64            Minus => write!(f, "-"),
65            Star => write!(f, "*"),
66            Slash => write!(f, "/"),
67            Percent => write!(f, "%"),
68            Hat => write!(f, "^"),
69            Eq => write!(f, "="),
70            ExclamationMark => write!(f, "!"),
71            Gt => write!(f, ">"),
72            Lt => write!(f, "<"),
73            Ampersand => write!(f, "&"),
74            VerticalBar => write!(f, "|"),
75        }
76    }
77}