diff options
Diffstat (limited to 'karlcommon')
-rw-r--r-- | karlcommon/Cargo.toml | 2 | ||||
-rw-r--r-- | karlcommon/src/protocol.rs | 20 |
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)] |