aboutsummaryrefslogtreecommitdiff
path: root/karlcommon/src/protocol.rs
diff options
context:
space:
mode:
Diffstat (limited to 'karlcommon/src/protocol.rs')
-rw-r--r--karlcommon/src/protocol.rs20
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)]