use crate::data::Index;
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
#[cfg_attr(feature = "serde-serialize", derive(Serialize, Deserialize))]
#[repr(transparent)]
pub struct MultibodyJointHandle(pub Index);
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
#[cfg_attr(feature = "serde-serialize", derive(Serialize, Deserialize))]
#[repr(transparent)]
pub struct MultibodyIndex(pub Index);
impl MultibodyJointHandle {
pub fn into_raw_parts(self) -> (u32, u32) {
self.0.into_raw_parts()
}
pub fn from_raw_parts(id: u32, generation: u32) -> Self {
Self(Index::from_raw_parts(id, generation))
}
pub fn invalid() -> Self {
Self(Index::from_raw_parts(
crate::INVALID_U32,
crate::INVALID_U32,
))
}
}
impl Default for MultibodyJointHandle {
fn default() -> Self {
Self::invalid()
}
}