28 lines
623 B
Rust
28 lines
623 B
Rust
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);
|