use crate::node::constant::ConstExprNode;
use zerodds_ast_core::{Id, RosTypeName};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum RosInterfaceRole {
Msg,
Request,
Response,
Goal,
Result,
Feedback,
}
impl RosInterfaceRole {
pub const ALL: [Self; 6] = [
Self::Msg,
Self::Request,
Self::Response,
Self::Goal,
Self::Result,
Self::Feedback,
];
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum RosBoundedOrigin {
BoundedArray,
FixedArray,
BoundedString,
UnboundedArray,
}
#[derive(Debug, Clone, Default, PartialEq, Eq)]
pub struct Ros2Facet {
pub default_value: Option<Id<ConstExprNode>>,
pub bounded_origin: Option<RosBoundedOrigin>,
pub interface_role: Option<RosInterfaceRole>,
pub ros_name: Option<RosTypeName>,
pub was_constant: bool,
}