Files
mnote/rust/crates/core-domain/src/ids.rs
T

28 lines
623 B
Rust
Raw Normal View History

2026-04-14 13:22:29 +08:00
macro_rules! define_id {
($name:ident) => {
#[derive(Debug, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct $name(pub String);
impl $name {
pub fn new(value: impl Into<String>) -> Self {
Self(value.into())
}
pub fn as_str(&self) -> &str {
&self.0
}
}
};
}
define_id!(WorkspaceId);
define_id!(PageId);
define_id!(BlockId);
define_id!(AssetId);
define_id!(AssetVersionId);
define_id!(ReferenceId);
define_id!(TaskId);
define_id!(AgentSessionId);
define_id!(CommandLogId);
define_id!(EventId);