1pub mod deadline;
7pub mod decay;
8pub mod duration;
9pub mod error;
10pub mod file_format;
11pub mod indexes;
12pub mod inventions;
13pub mod query_engine;
14pub mod schedule;
15pub mod sequence;
16pub mod write_engine;
17
18pub use deadline::{Consequence, Deadline, DeadlineStatus, DeadlineType};
19pub use decay::{DecayModel, DecayType};
20pub use duration::{DurationEstimate, DurationSource};
21pub use error::{TimeError, TimeResult};
22pub use file_format::{EntityType, FileHeader, TimeFile};
23pub use indexes::{DeadlineIndex, DecayIndex, SequenceIndex};
24pub use query_engine::{QueryEngine, TimeSlot, TimeStats};
25pub use schedule::{
26 Priority, Recurrence, RecurrenceEnd, RecurrencePattern, Schedule, ScheduleStatus,
27};
28pub use sequence::{Sequence, SequenceStatus, SequenceStep, StepStatus};
29pub use write_engine::{UpdateReport, WriteEngine};
30
31use serde::{Deserialize, Serialize};
32use uuid::Uuid;
33
34#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
36pub struct TemporalId(pub Uuid);
37
38impl TemporalId {
39 pub fn new() -> Self {
41 Self(Uuid::new_v4())
42 }
43}
44
45impl Default for TemporalId {
46 fn default() -> Self {
47 Self::new()
48 }
49}
50
51impl std::fmt::Display for TemporalId {
52 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
53 write!(f, "{}", self.0)
54 }
55}
56
57impl std::str::FromStr for TemporalId {
58 type Err = uuid::Error;
59
60 fn from_str(s: &str) -> Result<Self, Self::Err> {
61 Ok(Self(Uuid::parse_str(s)?))
62 }
63}