//! # Reflection implementation for protobuf data //! //! ## Generated vs dynamic //! //! rust-protobuf supports reflection for both: //! * generated messages (generated rust code) //! * dynamic messages (created from arbitrary `FileDescriptorProto` without code generation) //! //! The API to work with these types of messages is the same. //! //! ## API //! //! The API roughly follows Google protobuf C++ and Java API. //! Some minor adjustements are made to make code more idiomatic to rust. mod acc; mod dynamic; mod enums; pub(crate) mod error; mod field; mod file; mod find_message_or_enum; mod map; pub(crate) mod message; mod oneof; mod optional; mod protobuf_type_box; mod repeated; mod runtime_type_box; mod service; mod type_dynamic; pub(crate) mod value; // Runtime type types are public, but not visible in public API. pub(crate) mod runtime_types; pub(crate) mod types; pub(crate) mod reflect_eq; pub mod rt; pub(crate) mod name; #[doc(hidden)] pub use self::enums::generated::GeneratedEnumDescriptorData; pub use self::enums::EnumDescriptor; pub use self::enums::EnumValueDescriptor; pub use self::field::runtime_field_type::RuntimeFieldType; pub use self::field::FieldDescriptor; pub use self::field::ReflectFieldRef; #[doc(hidden)] pub use self::file::generated::GeneratedFileDescriptor; pub use self::file::syntax::Syntax; pub use self::file::FileDescriptor; pub use self::map::ReflectMapMut; pub use self::map::ReflectMapRef; #[doc(hidden)] pub use self::message::generated::GeneratedMessageDescriptorData; pub use self::message::message_ref::MessageRef; pub use self::message::MessageDescriptor; #[doc(hidden)] pub use self::oneof::generated::GeneratedOneofDescriptorData; pub use self::oneof::OneofDescriptor; pub use self::optional::ReflectOptionalRef; pub use self::reflect_eq::ReflectEq; pub use self::reflect_eq::ReflectEqMode; pub use self::repeated::ReflectRepeatedMut; pub use self::repeated::ReflectRepeatedRef; pub use self::runtime_type_box::RuntimeType; pub use self::service::MethodDescriptor; pub use self::service::ServiceDescriptor; pub use self::value::value_box::ReflectValueBox; pub use self::value::value_ref::ReflectValueRef; pub use self::value::ProtobufValue;