1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
/// Trait implemented by all the messages defined in proto files.
/// Provides rudimentary support for message descriptor, mostly as a way to get
/// the type name for a given message rather than trying to implement the full
/// reflection API. For more info, see:
/// <https://developers.google.com/protocol-buffers/docs/techniques>
/// <https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/descriptor.proto>
pub trait MessageDescriptor {
    /// The name of the message type, not including its scope.
    const NAME: &'static str;
    /// The fully-qualified name of the message type, scope delimited by periods.
    /// For example, message type "Foo" which is declared in package "bar" has full name "bar.Foo".
    /// If a type "Baz" is nested within Foo, Baz's full_name is "bar.Foo_Baz". To get only the
    /// part that comes after the last '.', use `message_name`.
    const FULL_NAME: &'static str;
}