// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct KeyValue {
    #[prost(string, tag = "1")]
    pub key: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub value: ::prost::alloc::string::String,
}
impl ::prost::Name for KeyValue {
    const NAME: &'static str = "KeyValue";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.type_description_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.type_description_interfaces.msg.KeyValue".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.type_description_interfaces.msg.KeyValue".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FieldType {
    #[prost(uint32, tag = "1")]
    pub type_id: u32,
    #[prost(uint64, tag = "2")]
    pub capacity: u64,
    #[prost(uint64, tag = "3")]
    pub string_capacity: u64,
    #[prost(string, tag = "4")]
    pub nested_type_name: ::prost::alloc::string::String,
}
impl ::prost::Name for FieldType {
    const NAME: &'static str = "FieldType";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.type_description_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.type_description_interfaces.msg.FieldType".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.type_description_interfaces.msg.FieldType".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Field {
    #[prost(string, tag = "1")]
    pub name: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "2")]
    pub r#type: ::core::option::Option<FieldType>,
    #[prost(string, tag = "3")]
    pub default_value: ::prost::alloc::string::String,
}
impl ::prost::Name for Field {
    const NAME: &'static str = "Field";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.type_description_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.type_description_interfaces.msg.Field".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.type_description_interfaces.msg.Field".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IndividualTypeDescription {
    #[prost(string, tag = "1")]
    pub type_name: ::prost::alloc::string::String,
    #[prost(message, repeated, tag = "2")]
    pub fields: ::prost::alloc::vec::Vec<Field>,
}
impl ::prost::Name for IndividualTypeDescription {
    const NAME: &'static str = "IndividualTypeDescription";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.type_description_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.type_description_interfaces.msg.IndividualTypeDescription"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.type_description_interfaces.msg.IndividualTypeDescription"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TypeDescription {
    #[prost(message, optional, tag = "1")]
    pub type_description: ::core::option::Option<IndividualTypeDescription>,
    #[prost(message, repeated, tag = "2")]
    pub referenced_type_descriptions: ::prost::alloc::vec::Vec<
        IndividualTypeDescription,
    >,
}
impl ::prost::Name for TypeDescription {
    const NAME: &'static str = "TypeDescription";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.type_description_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.type_description_interfaces.msg.TypeDescription"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.type_description_interfaces.msg.TypeDescription"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TypeSource {
    #[prost(string, tag = "1")]
    pub type_name: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub encoding: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub raw_file_contents: ::prost::alloc::string::String,
}
impl ::prost::Name for TypeSource {
    const NAME: &'static str = "TypeSource";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.type_description_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.type_description_interfaces.msg.TypeSource".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.type_description_interfaces.msg.TypeSource".into()
    }
}
