1#[repr(transparent)]
5#[derive(Clone, Copy, Debug, Default, Eq, Hash, PartialEq)]
6pub struct ClassId(pub u16);
7
8#[repr(transparent)]
13#[derive(Clone, Copy, Debug, Default, Eq, Hash, PartialEq)]
14pub struct TrackId(pub u32);
15
16pub type LocalTrackId = TrackId;
18
19#[repr(transparent)]
21#[derive(Clone, Copy, Debug, Default, Eq, Hash, PartialEq)]
22pub struct ZoneId(pub u16);
23
24#[repr(transparent)]
26#[derive(Clone, Copy, Debug, Default, Eq, Hash, PartialEq)]
27pub struct SourceId(pub u32);
28
29#[derive(Clone, Copy, Debug, Default, Eq, Hash, PartialEq)]
31pub struct TrackKey {
32 pub source_id: SourceId,
34 pub local_track_id: LocalTrackId,
36}
37
38impl TrackKey {
39 #[must_use]
41 pub const fn new(source_id: SourceId, local_track_id: LocalTrackId) -> Self {
42 Self {
43 source_id,
44 local_track_id,
45 }
46 }
47}
48
49#[repr(transparent)]
51#[derive(Clone, Copy, Debug, Default, Eq, Hash, PartialEq)]
52pub struct TrackUid(pub u64);
53
54#[repr(transparent)]
56#[derive(Clone, Copy, Debug, Default, Eq, Hash, PartialEq)]
57pub struct ObservationId(pub u64);
58
59#[repr(transparent)]
61#[derive(Clone, Copy, Debug, Default, Eq, Hash, PartialEq)]
62pub struct SubjectId(pub u64);
63
64#[repr(transparent)]
66#[derive(Clone, Copy, Debug, Default, Eq, Hash, PartialEq)]
67pub struct EvidenceRef(pub u64);
68
69#[repr(transparent)]
71#[derive(Clone, Copy, Debug, Default, Eq, Hash, PartialEq)]
72pub struct MaskRef(pub u64);
73
74#[repr(transparent)]
76#[derive(Clone, Copy, Debug, Default, Eq, Hash, PartialEq)]
77pub struct EmbeddingRef(pub u64);
78
79#[repr(transparent)]
81#[derive(Clone, Copy, Debug, Default, Eq, Hash, PartialEq)]
82pub struct KeypointSetRef(pub u64);
83
84#[repr(transparent)]
86#[derive(Clone, Copy, Debug, Default, Eq, Hash, PartialEq)]
87pub struct EventId(pub u64);
88
89#[repr(transparent)]
91#[derive(Clone, Copy, Debug, Default, Eq, Hash, PartialEq)]
92pub struct AppearanceId(pub u64);
93
94#[repr(transparent)]
96#[derive(Clone, Copy, Debug, Default, Eq, Hash, PartialEq)]
97pub struct VisitId(pub u64);
98
99#[repr(transparent)]
101#[derive(Clone, Copy, Debug, Default, Eq, Hash, PartialEq)]
102pub struct PatternId(pub u64);
103
104#[repr(transparent)]
106#[derive(Clone, Copy, Debug, Default, Eq, Hash, PartialEq)]
107pub struct AnomalyId(pub u64);