scroll.server/crates/titan/src/data_ref.rs
WiseDev d25a6de423 move all crates into crates/, glob members
pure move, no code touched. readme and protocol.md paths fixed up.
2026-08-23 08:15:45 +03:00

29 lines
833 B
Rust

use std::fmt;
pub const INSTANCE_ID_MODULO: i32 = 1_000_000;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct GlobalId {
pub class_id: i32,
pub instance_id: i32,
}
impl GlobalId {
pub const fn new(class_id: i32, instance_id: i32) -> Self {
Self {
class_id,
instance_id,
}
}
pub const fn from_global(global_id: i32) -> Self {
Self {
class_id: global_id / INSTANCE_ID_MODULO,
instance_id: global_id % INSTANCE_ID_MODULO,
}
}
pub const fn to_global(self) -> i32 {
self.class_id * INSTANCE_ID_MODULO + self.instance_id
}
}
impl fmt::Display for GlobalId {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "{}:{}", self.class_id, self.instance_id)
}
}