protobuf/reflect/file/
syntax.rs
1use crate::descriptor::FileDescriptorProto;
2
3#[derive(Debug, Copy, Clone, PartialEq, Eq)]
5pub enum Syntax {
6 Proto2,
8 Proto3,
10}
11
12impl Syntax {
13 pub(crate) fn parse(syntax: &str) -> Option<Syntax> {
14 match syntax {
15 "" | "proto2" => Some(Syntax::Proto2),
16 "proto3" => Some(Syntax::Proto3),
17 _ => None,
18 }
19 }
20
21 pub(crate) fn of_file(file: &FileDescriptorProto) -> Syntax {
22 Syntax::parse(file.syntax()).unwrap_or(Syntax::Proto2)
23 }
24}