ocelot_base/
compilation_stage.rs1#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
3pub enum CompilationStage {
4 Lexer,
5 Parser,
6 Resolver,
7}
8
9impl std::fmt::Display for CompilationStage {
10 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11 match self {
12 Self::Lexer => f.write_str("lexer"),
13 Self::Parser => f.write_str("parser"),
14 Self::Resolver => f.write_str("resolver"),
15 }
16 }
17}
18
19#[cfg(test)]
20mod tests {
21 use super::CompilationStage;
22
23 #[test]
24 fn compilation_stage_formats_as_lowercase_name() {
25 assert_eq!(CompilationStage::Lexer.to_string(), "lexer");
26 assert_eq!(CompilationStage::Parser.to_string(), "parser");
27 assert_eq!(CompilationStage::Resolver.to_string(), "resolver");
28 }
29}