// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Station {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(int32, tag = "3")]
    pub id: i32,
    #[prost(string, tag = "4")]
    pub name: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "5")]
    pub pose: ::core::option::Option<super::super::geometry_msgs::msg::Pose>,
}
impl ::prost::Name for Station {
    const NAME: &'static str = "Station";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.Station".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.Station".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Order {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(int32, tag = "3")]
    pub order_id: i32,
    #[prost(string, tag = "4")]
    pub order_name: ::prost::alloc::string::String,
    #[prost(message, repeated, tag = "5")]
    pub stations: ::prost::alloc::vec::Vec<Station>,
}
impl ::prost::Name for Order {
    const NAME: &'static str = "Order";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.Order".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.Order".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RoutePrecondition {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(string, tag = "2")]
    pub robot_id: ::prost::alloc::string::String,
    #[prost(int32, tag = "3")]
    pub current_route_segment: i32,
}
impl ::prost::Name for RoutePrecondition {
    const NAME: &'static str = "RoutePrecondition";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.RoutePrecondition".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.RoutePrecondition".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RouteProgress {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(int32, repeated, tag = "3")]
    pub passed: ::prost::alloc::vec::Vec<i32>,
    #[prost(int32, tag = "4")]
    pub current: i32,
    #[prost(int32, repeated, tag = "5")]
    pub todo: ::prost::alloc::vec::Vec<i32>,
    #[prost(float, tag = "6")]
    pub progress: f32,
}
impl ::prost::Name for RouteProgress {
    const NAME: &'static str = "RouteProgress";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.RouteProgress".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.RouteProgress".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RouteSegment {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(int32, tag = "2")]
    pub segment_id: i32,
    #[prost(message, repeated, tag = "3")]
    pub preconditions: ::prost::alloc::vec::Vec<RoutePrecondition>,
    #[prost(message, optional, tag = "4")]
    pub start: ::core::option::Option<super::super::geometry_msgs::msg::Pose>,
    #[prost(message, optional, tag = "5")]
    pub end: ::core::option::Option<super::super::geometry_msgs::msg::Pose>,
    #[prost(float, tag = "6")]
    pub width: f32,
}
impl ::prost::Name for RouteSegment {
    const NAME: &'static str = "RouteSegment";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.RouteSegment".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.RouteSegment".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Route {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "3")]
    pub segments: ::prost::alloc::vec::Vec<RouteSegment>,
}
impl ::prost::Name for Route {
    const NAME: &'static str = "Route";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.Route".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.Route".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OrderPosition {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(int32, tag = "3")]
    pub order_id: i32,
    #[prost(message, optional, tag = "4")]
    pub position: ::core::option::Option<super::super::geometry_msgs::msg::Pose>,
}
impl ::prost::Name for OrderPosition {
    const NAME: &'static str = "OrderPosition";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.OrderPosition".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.OrderPosition".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RobotGoals {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(string, tag = "2")]
    pub robot_name: ::prost::alloc::string::String,
    #[prost(message, repeated, tag = "3")]
    pub destinations: ::prost::alloc::vec::Vec<super::super::geometry_msgs::msg::Pose>,
}
impl ::prost::Name for RobotGoals {
    const NAME: &'static str = "RobotGoals";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.RobotGoals".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.RobotGoals".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RobotGoalsArray {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "3")]
    pub robots: ::prost::alloc::vec::Vec<RobotGoals>,
}
impl ::prost::Name for RobotGoalsArray {
    const NAME: &'static str = "RobotGoalsArray";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.RobotGoalsArray".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.RobotGoalsArray".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Vertex {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub id: u32,
    #[prost(bool, tag = "3")]
    pub valid: bool,
    #[prost(message, repeated, tag = "4")]
    pub path: ::prost::alloc::vec::Vec<super::super::geometry_msgs::msg::Point>,
    #[prost(uint32, tag = "5")]
    pub weight: u32,
    #[prost(float, tag = "6")]
    pub width: f32,
    #[prost(uint32, repeated, tag = "7")]
    pub successors: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "8")]
    pub predecessors: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for Vertex {
    const NAME: &'static str = "Vertex";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.Vertex".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.Vertex".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Graph {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "3")]
    pub origin: ::core::option::Option<super::super::geometry_msgs::msg::Pose>,
    #[prost(message, repeated, tag = "4")]
    pub vertices: ::prost::alloc::vec::Vec<Vertex>,
}
impl ::prost::Name for Graph {
    const NAME: &'static str = "Graph";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.Graph".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.Graph".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RobotInfo {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(string, tag = "3")]
    pub robot_name: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "4")]
    pub pose: ::core::option::Option<
        super::super::geometry_msgs::msg::PoseWithCovariance,
    >,
    #[prost(int32, tag = "5")]
    pub shape: i32,
    #[prost(float, repeated, tag = "6")]
    pub shape_variables: ::prost::alloc::vec::Vec<f32>,
    #[prost(message, optional, tag = "7")]
    pub sync: ::core::option::Option<RoutePrecondition>,
    #[prost(int32, tag = "8")]
    pub mode: i32,
    #[prost(int32, tag = "9")]
    pub status: i32,
    #[prost(int32, tag = "10")]
    pub good_id: i32,
    #[prost(int32, tag = "11")]
    pub order_id: i32,
    #[prost(int32, tag = "12")]
    pub order_status: i32,
}
impl ::prost::Name for RobotInfo {
    const NAME: &'static str = "RobotInfo";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.RobotInfo".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.RobotInfo".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Pickup {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(string, tag = "3")]
    pub robot_name: ::prost::alloc::string::String,
    #[prost(int32, tag = "4")]
    pub order_id: i32,
}
impl ::prost::Name for Pickup {
    const NAME: &'static str = "Pickup";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.Pickup".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.Pickup".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OrderArray {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "3")]
    pub orders: ::prost::alloc::vec::Vec<Order>,
}
impl ::prost::Name for OrderArray {
    const NAME: &'static str = "OrderArray";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.OrderArray".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.OrderArray".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RouterStatus {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(int32, tag = "2")]
    pub id: i32,
    #[prost(bool, tag = "3")]
    pub success: bool,
    #[prost(string, repeated, tag = "4")]
    pub missing_robots: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(int32, tag = "5")]
    pub duration: i32,
    #[prost(int32, tag = "6")]
    pub overall_path_length: i32,
    #[prost(int32, tag = "7")]
    pub longest_path_length: i32,
    #[prost(int32, tag = "8")]
    pub priority_scheduling_attemps: i32,
    #[prost(int32, tag = "9")]
    pub speed_scheduling_attemps: i32,
}
impl ::prost::Name for RouterStatus {
    const NAME: &'static str = "RouterStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.RouterStatus".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.RouterStatus".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StationArray {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "3")]
    pub stations: ::prost::alloc::vec::Vec<Station>,
}
impl ::prost::Name for StationArray {
    const NAME: &'static str = "StationArray";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.StationArray".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.tuw_multi_robot_msgs.msg.StationArray".into()
    }
}
