diff options
Diffstat (limited to 'karlcommon/src/protocol.rs')
-rw-r--r-- | karlcommon/src/protocol.rs | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/karlcommon/src/protocol.rs b/karlcommon/src/protocol.rs index f971ef2..de65802 100644 --- a/karlcommon/src/protocol.rs +++ b/karlcommon/src/protocol.rs @@ -41,15 +41,21 @@ pub struct Task { pub id: u64, pub name: String, pub description: Option<String>, - pub tags: Vec<String>, - pub priority: f64, - - pub completed: Option<i64>, - pub scheduled: Option<i64>, + pub schedule: Schedule, +} - pub occurence: Option<Condition>, - pub deadline: Option<Condition>, +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(tag = "type", content = "options", rename_all = "snake_case")] +pub enum Schedule { + Never, + Dynamic { + priority: f64, + scheduled: Option<i64>, + deadline: Option<Condition>, + }, + Condition(Condition), + Static(Range<i64>), } #[derive(Debug, Clone, Serialize, Deserialize)] |