aboutsummaryrefslogtreecommitdiff
path: root/karlcommon
diff options
context:
space:
mode:
Diffstat (limited to 'karlcommon')
-rw-r--r--karlcommon/Cargo.toml2
-rw-r--r--karlcommon/src/protocol.rs20
2 files changed, 14 insertions, 8 deletions
diff --git a/karlcommon/Cargo.toml b/karlcommon/Cargo.toml
index 6ce571e..c56085e 100644
--- a/karlcommon/Cargo.toml
+++ b/karlcommon/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "karlcommon"
-version = "0.1.0"
+version = "0.1.2"
edition = "2021"
[dependencies]
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)]