use crate::prelude::*;
use beet_core::prelude::*;
#[derive(
Debug,
Default,
Clone,
Copy,
PartialEq,
Eq,
PartialOrd,
Ord,
Hash,
Deref,
Reflect,
Component,
)]
#[reflect(Default, Component)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "tokens", derive(ToTokens))]
pub struct DomIdx(
pub u32,
);
impl std::fmt::Display for DomIdx {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "DomIdx({})", self.0)
}
}
impl DomIdx {
pub fn new(idx: u32) -> Self { Self(idx) }
pub fn inner(&self) -> u32 { self.0 }
}
#[derive(Default, Clone, PartialEq, Eq, Hash, Component, Reflect)]
#[reflect(Default, Component)]
#[cfg_attr(feature = "tokens", derive(ToTokens))]
#[require(RequiresDomBinding)]
pub struct RequiresDomIdx;