cronback_lib/types/
ids.rs1use crate::model::define_model_id;
2
3define_model_id! {
4 @prefix = "prj",
5 @no_owner,
6 @proto = proto::common::ProjectId,
7 pub struct ProjectId;
8}
9
10define_model_id! {
11 @prefix = "trig",
12 @proto = proto::common::TriggerId,
13 pub struct TriggerId;
14}
15
16define_model_id! {
17 @prefix = "run",
18 @proto = proto::common::RunId,
19 pub struct RunId;
20}
21
22define_model_id! {
23 @prefix = "att",
24 @proto = proto::common::AttemptId,
25 pub struct AttemptId;
26}
27
28#[cfg(test)]
29mod tests {
30 use super::*;
31
32 #[test]
33 fn test_id_sharding() -> Result<(), crate::model::ModelIdError> {
34 let project = ProjectId::generate();
35 let project_shard = project.shard();
36
37 let trigger = TriggerId::generate(&project);
38 assert_eq!(trigger.shard(), project_shard);
39 Ok(())
40 }
41}