// This file is @generated by prost-build.
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct GeoPoint {
    #[prost(double, tag = "1")]
    pub latitude: f64,
    #[prost(double, tag = "2")]
    pub longitude: f64,
    #[prost(double, tag = "3")]
    pub altitude: f64,
}
impl ::prost::Name for GeoPoint {
    const NAME: &'static str = "GeoPoint";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.geographic_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.geographic_msgs.msg.GeoPoint".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.geographic_msgs.msg.GeoPoint".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct BoundingBox {
    #[prost(message, optional, tag = "1")]
    pub min_pt: ::core::option::Option<GeoPoint>,
    #[prost(message, optional, tag = "2")]
    pub max_pt: ::core::option::Option<GeoPoint>,
}
impl ::prost::Name for BoundingBox {
    const NAME: &'static str = "BoundingBox";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.geographic_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.geographic_msgs.msg.BoundingBox".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.geographic_msgs.msg.BoundingBox".into()
    }
}
#[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.jazzy.geographic_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.geographic_msgs.msg.KeyValue".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.geographic_msgs.msg.KeyValue".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MapFeature {
    #[prost(message, optional, tag = "1")]
    pub id: ::core::option::Option<super::super::unique_identifier_msgs::msg::Uuid>,
    #[prost(message, repeated, tag = "2")]
    pub components: ::prost::alloc::vec::Vec<
        super::super::unique_identifier_msgs::msg::Uuid,
    >,
    #[prost(message, repeated, tag = "3")]
    pub props: ::prost::alloc::vec::Vec<KeyValue>,
}
impl ::prost::Name for MapFeature {
    const NAME: &'static str = "MapFeature";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.geographic_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.geographic_msgs.msg.MapFeature".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.geographic_msgs.msg.MapFeature".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WayPoint {
    #[prost(message, optional, tag = "1")]
    pub id: ::core::option::Option<super::super::unique_identifier_msgs::msg::Uuid>,
    #[prost(message, optional, tag = "2")]
    pub position: ::core::option::Option<GeoPoint>,
    #[prost(message, repeated, tag = "3")]
    pub props: ::prost::alloc::vec::Vec<KeyValue>,
}
impl ::prost::Name for WayPoint {
    const NAME: &'static str = "WayPoint";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.geographic_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.geographic_msgs.msg.WayPoint".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.geographic_msgs.msg.WayPoint".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GeographicMap {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub id: ::core::option::Option<super::super::unique_identifier_msgs::msg::Uuid>,
    #[prost(message, optional, tag = "3")]
    pub bounds: ::core::option::Option<BoundingBox>,
    #[prost(message, repeated, tag = "4")]
    pub points: ::prost::alloc::vec::Vec<WayPoint>,
    #[prost(message, repeated, tag = "5")]
    pub features: ::prost::alloc::vec::Vec<MapFeature>,
    #[prost(message, repeated, tag = "6")]
    pub props: ::prost::alloc::vec::Vec<KeyValue>,
}
impl ::prost::Name for GeographicMap {
    const NAME: &'static str = "GeographicMap";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.geographic_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.geographic_msgs.msg.GeographicMap".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.geographic_msgs.msg.GeographicMap".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GeographicMapChanges {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub diffs: ::core::option::Option<GeographicMap>,
    #[prost(message, repeated, tag = "3")]
    pub deletes: ::prost::alloc::vec::Vec<
        super::super::unique_identifier_msgs::msg::Uuid,
    >,
}
impl ::prost::Name for GeographicMapChanges {
    const NAME: &'static str = "GeographicMapChanges";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.geographic_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.geographic_msgs.msg.GeographicMapChanges".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.geographic_msgs.msg.GeographicMapChanges".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct GeoPose {
    #[prost(message, optional, tag = "1")]
    pub position: ::core::option::Option<GeoPoint>,
    #[prost(message, optional, tag = "2")]
    pub orientation: ::core::option::Option<
        super::super::geometry_msgs::msg::Quaternion,
    >,
}
impl ::prost::Name for GeoPose {
    const NAME: &'static str = "GeoPose";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.geographic_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.geographic_msgs.msg.GeoPose".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.geographic_msgs.msg.GeoPose".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GeoPoseStamped {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub pose: ::core::option::Option<GeoPose>,
}
impl ::prost::Name for GeoPoseStamped {
    const NAME: &'static str = "GeoPoseStamped";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.geographic_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.geographic_msgs.msg.GeoPoseStamped".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.geographic_msgs.msg.GeoPoseStamped".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GeoPath {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "2")]
    pub poses: ::prost::alloc::vec::Vec<GeoPoseStamped>,
}
impl ::prost::Name for GeoPath {
    const NAME: &'static str = "GeoPath";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.geographic_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.geographic_msgs.msg.GeoPath".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.geographic_msgs.msg.GeoPath".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RoutePath {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub network: ::core::option::Option<super::super::unique_identifier_msgs::msg::Uuid>,
    #[prost(message, repeated, tag = "3")]
    pub segments: ::prost::alloc::vec::Vec<
        super::super::unique_identifier_msgs::msg::Uuid,
    >,
    #[prost(message, repeated, tag = "4")]
    pub props: ::prost::alloc::vec::Vec<KeyValue>,
}
impl ::prost::Name for RoutePath {
    const NAME: &'static str = "RoutePath";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.geographic_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.geographic_msgs.msg.RoutePath".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.geographic_msgs.msg.RoutePath".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GeoPoseWithCovariance {
    #[prost(message, optional, tag = "1")]
    pub pose: ::core::option::Option<GeoPose>,
    #[prost(double, repeated, tag = "2")]
    pub covariance: ::prost::alloc::vec::Vec<f64>,
}
impl ::prost::Name for GeoPoseWithCovariance {
    const NAME: &'static str = "GeoPoseWithCovariance";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.geographic_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.geographic_msgs.msg.GeoPoseWithCovariance".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.geographic_msgs.msg.GeoPoseWithCovariance".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GeoPoseWithCovarianceStamped {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub pose: ::core::option::Option<GeoPoseWithCovariance>,
}
impl ::prost::Name for GeoPoseWithCovarianceStamped {
    const NAME: &'static str = "GeoPoseWithCovarianceStamped";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.geographic_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.geographic_msgs.msg.GeoPoseWithCovarianceStamped"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.geographic_msgs.msg.GeoPoseWithCovarianceStamped"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RouteSegment {
    #[prost(message, optional, tag = "1")]
    pub id: ::core::option::Option<super::super::unique_identifier_msgs::msg::Uuid>,
    #[prost(message, optional, tag = "2")]
    pub start: ::core::option::Option<super::super::unique_identifier_msgs::msg::Uuid>,
    #[prost(message, optional, tag = "3")]
    pub end: ::core::option::Option<super::super::unique_identifier_msgs::msg::Uuid>,
    #[prost(message, repeated, tag = "4")]
    pub props: ::prost::alloc::vec::Vec<KeyValue>,
}
impl ::prost::Name for RouteSegment {
    const NAME: &'static str = "RouteSegment";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.geographic_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.geographic_msgs.msg.RouteSegment".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.geographic_msgs.msg.RouteSegment".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RouteNetwork {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub id: ::core::option::Option<super::super::unique_identifier_msgs::msg::Uuid>,
    #[prost(message, optional, tag = "3")]
    pub bounds: ::core::option::Option<BoundingBox>,
    #[prost(message, repeated, tag = "4")]
    pub points: ::prost::alloc::vec::Vec<WayPoint>,
    #[prost(message, repeated, tag = "5")]
    pub segments: ::prost::alloc::vec::Vec<RouteSegment>,
    #[prost(message, repeated, tag = "6")]
    pub props: ::prost::alloc::vec::Vec<KeyValue>,
}
impl ::prost::Name for RouteNetwork {
    const NAME: &'static str = "RouteNetwork";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.geographic_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.geographic_msgs.msg.RouteNetwork".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.geographic_msgs.msg.RouteNetwork".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GeoPointStamped {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub position: ::core::option::Option<GeoPoint>,
}
impl ::prost::Name for GeoPointStamped {
    const NAME: &'static str = "GeoPointStamped";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.geographic_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.geographic_msgs.msg.GeoPointStamped".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.geographic_msgs.msg.GeoPointStamped".into()
    }
}
