protobuf/reflect/
mod.rs

1//! # Reflection implementation for protobuf data
2//!
3//! ## Generated vs dynamic
4//!
5//! rust-protobuf supports reflection for both:
6//! * generated messages (generated rust code)
7//! * dynamic messages (created from arbitrary `FileDescriptorProto` without code generation)
8//!
9//! The API to work with these types of messages is the same.
10//!
11//! ## API
12//!
13//! The API roughly follows Google protobuf C++ and Java API.
14//! Some minor adjustements are made to make code more idiomatic to rust.
15
16mod acc;
17mod dynamic;
18mod enums;
19pub(crate) mod error;
20mod field;
21mod file;
22mod find_message_or_enum;
23mod map;
24pub(crate) mod message;
25mod oneof;
26mod optional;
27mod protobuf_type_box;
28mod repeated;
29mod runtime_type_box;
30mod service;
31mod type_dynamic;
32pub(crate) mod value;
33
34// Runtime type types are public, but not visible in public API.
35pub(crate) mod runtime_types;
36
37pub(crate) mod types;
38
39pub(crate) mod reflect_eq;
40
41pub mod rt;
42
43pub(crate) mod name;
44
45#[doc(hidden)]
46pub use self::enums::generated::GeneratedEnumDescriptorData;
47pub use self::enums::EnumDescriptor;
48pub use self::enums::EnumValueDescriptor;
49pub use self::field::runtime_field_type::RuntimeFieldType;
50pub use self::field::FieldDescriptor;
51pub use self::field::ReflectFieldRef;
52#[doc(hidden)]
53pub use self::file::generated::GeneratedFileDescriptor;
54pub use self::file::syntax::Syntax;
55pub use self::file::FileDescriptor;
56pub use self::map::ReflectMapMut;
57pub use self::map::ReflectMapRef;
58#[doc(hidden)]
59pub use self::message::generated::GeneratedMessageDescriptorData;
60pub use self::message::message_ref::MessageRef;
61pub use self::message::MessageDescriptor;
62#[doc(hidden)]
63pub use self::oneof::generated::GeneratedOneofDescriptorData;
64pub use self::oneof::OneofDescriptor;
65pub use self::optional::ReflectOptionalRef;
66pub use self::reflect_eq::ReflectEq;
67pub use self::reflect_eq::ReflectEqMode;
68pub use self::repeated::ReflectRepeatedMut;
69pub use self::repeated::ReflectRepeatedRef;
70pub use self::runtime_type_box::RuntimeType;
71pub use self::service::MethodDescriptor;
72pub use self::service::ServiceDescriptor;
73pub use self::value::value_box::ReflectValueBox;
74pub use self::value::value_ref::ReflectValueRef;
75pub use self::value::ProtobufValue;