|  | //! # 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, | 
|  | } |