//! # Parse `.proto` files //! //! Parse `.proto` file definitions, **not** the protobuf text format serialization. //! //! Files can be parsed using pure Rust parser (mod `pure`) //! or using the `protoc` command (mod `protoc`). //! //! This crate is not meant to be used directly, but rather through the `protobuf-codegen` crate. //! If you think this crate might be useful to you, //! please [consider creating an issue](https://github.com/stepancheg/rust-protobuf/issues/new), //! until that this crate is considered to have **no stable API**. extern crate core; mod case_convert; mod parse_and_typecheck; mod parser; mod path; mod proto; mod proto_path; mod protobuf_abs_path; mod protobuf_ident; mod protobuf_path; mod protobuf_rel_path; pub(crate) mod protoc; pub mod pure; mod rel_path; mod test_against_protobuf_protos; mod which_parser; // Public API // Non-public API used by codegen crate. pub use case_convert::*; pub use parse_and_typecheck::*; pub use parser::Parser; pub use proto_path::*; use protobuf::reflect::FileDescriptor; pub use protobuf_abs_path::*; pub use protobuf_ident::*; pub use protobuf_rel_path::*; use crate::pure::model; #[derive(Clone)] pub(crate) struct FileDescriptorPair { pub(crate) parsed: model::FileDescriptor, pub(crate) descriptor_proto: protobuf::descriptor::FileDescriptorProto, pub(crate) descriptor: FileDescriptor, }