From 3f2536b28119fe6b91e29eeb18db7de5af281ae1 Mon Sep 17 00:00:00 2001 From: Gabriel Hansson Date: Sun, 28 Apr 2024 19:30:29 +0200 Subject: [PATCH] chore - codegen: `Syntax` to a separate file (#1029) --- prost-build/src/code_generator.rs | 15 +++------------ prost-build/src/code_generator/syntax.rs | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 12 deletions(-) create mode 100644 prost-build/src/code_generator/syntax.rs diff --git a/prost-build/src/code_generator.rs b/prost-build/src/code_generator.rs index 12e35c036..89c48f30b 100644 --- a/prost-build/src/code_generator.rs +++ b/prost-build/src/code_generator.rs @@ -23,11 +23,8 @@ use crate::Config; mod c_escaping; use c_escaping::unescape_c_escape_string; -#[derive(PartialEq)] -enum Syntax { - Proto2, - Proto3, -} +mod syntax; +use syntax::Syntax; pub struct CodeGenerator<'a> { config: &'a mut Config, @@ -69,18 +66,12 @@ impl<'a> CodeGenerator<'a> { s }); - let syntax = match file.syntax.as_ref().map(String::as_str) { - None | Some("proto2") => Syntax::Proto2, - Some("proto3") => Syntax::Proto3, - Some(s) => panic!("unknown syntax: {}", s), - }; - let mut code_gen = CodeGenerator { config, package: file.package.unwrap_or_default(), type_path: Vec::new(), source_info, - syntax, + syntax: file.syntax.as_deref().into(), message_graph, extern_paths, depth: 0, diff --git a/prost-build/src/code_generator/syntax.rs b/prost-build/src/code_generator/syntax.rs new file mode 100644 index 000000000..4fbe9919b --- /dev/null +++ b/prost-build/src/code_generator/syntax.rs @@ -0,0 +1,14 @@ +#[derive(PartialEq)] +pub(super) enum Syntax { + Proto2, + Proto3, +} +impl From> for Syntax { + fn from(optional_str: Option<&str>) -> Self { + match optional_str { + None | Some("proto2") => Syntax::Proto2, + Some("proto3") => Syntax::Proto3, + Some(s) => panic!("unknown syntax: {}", s), + } + } +}