Function protox_parse::parse
source · pub fn parse(
name: &str,
source: &str
) -> Result<FileDescriptorProto, ParseError>
Expand description
Parses a single protobuf source file into a FileDescriptorProto
.
This function only looks at the syntax of the file, without resolving type names or reading imported files.
Examples
let source = r#"
syntax = "proto3";
import "dep.proto";
message Foo {
Bar bar = 1;
}
"#;
let file_descriptor = parse("foo.proto", source).unwrap();
assert_eq!(file_descriptor, FileDescriptorProto {
name: Some("foo.proto".to_owned()),
syntax: Some("proto3".to_owned()),
dependency: vec!["dep.proto".to_owned()],
message_type: vec![DescriptorProto {
name: Some("Foo".to_owned()),
field: vec![FieldDescriptorProto {
label: Some(Label::Optional as _),
name: Some("bar".to_owned()),
number: Some(1),
type_name: Some("Bar".to_owned()),
..Default::default()
}],
..Default::default()
}],
source_code_info: Some(SourceCodeInfo {
/* ... */
}),
..Default::default()
})