aboutsummaryrefslogtreecommitdiff
path: root/karlcommon/src
diff options
context:
space:
mode:
Diffstat (limited to 'karlcommon/src')
-rw-r--r--karlcommon/src/protocol.rs25
1 files changed, 20 insertions, 5 deletions
diff --git a/karlcommon/src/protocol.rs b/karlcommon/src/protocol.rs
index 55dda06..e5bb9f0 100644
--- a/karlcommon/src/protocol.rs
+++ b/karlcommon/src/protocol.rs
@@ -1,3 +1,4 @@
+use std::ops::Range;
use serde::{Deserialize, Serialize};
@@ -6,14 +7,22 @@ use serde::{Deserialize, Serialize};
pub enum ClientboundPacket {
Handshake { version: String },
Error(String),
- DownloadResponse(Vec<Task>),
+ TaskList(Vec<Task>),
+ InstanceList(Vec<Instance>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "type", content = "data", rename_all = "snake_case")]
pub enum ServerboundPacket {
- Handshake { version: String },
- Download,
+ Handshake {
+ version: String,
+ },
+ ListTasks,
+ ListInstances {
+ task: u64,
+ range: Range<Option<i64>>,
+ limit: usize,
+ },
UpdateTask(Task),
RemoveTask(u64),
}
@@ -27,14 +36,20 @@ pub struct Task {
pub tags: Vec<String>,
pub priority: f64,
- pub completed: Option<u64>,
- pub scheduled: Option<u64>,
+ pub completed: Option<i64>,
+ pub scheduled: Option<i64>,
pub occurence: Option<Condition>,
pub deadline: Option<Condition>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Instance {
+ pub of: u64,
+ pub at: Range<Option<i64>>,
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum Condition {
From(Box<Condition>),