diff --git a/bin/taud/src/task_info.rs b/bin/taud/src/task_info.rs index 84050964a..4ca81ed72 100644 --- a/bin/taud/src/task_info.rs +++ b/bin/taud/src/task_info.rs @@ -3,7 +3,7 @@ use std::{io, path::PathBuf}; use serde::{Deserialize, Serialize}; use darkfi::{ - util::serial::{Decodable, Encodable}, + util::serial::{Decodable, Encodable, SerialDecodable, SerialEncodable}, Result, }; @@ -14,7 +14,7 @@ use crate::{ util::{find_free_id, get_current_time, random_ref_id, Settings, Timestamp}, }; -#[derive(Clone, Debug, Serialize, Deserialize, PartialEq)] +#[derive(Clone, Debug, Serialize, Deserialize, SerialEncodable, SerialDecodable, PartialEq)] struct TaskEvent { action: String, timestamp: Timestamp, @@ -26,7 +26,7 @@ impl TaskEvent { } } -#[derive(Clone, Debug, Serialize, Deserialize, PartialEq)] +#[derive(Clone, Debug, Serialize, Deserialize, SerialDecodable, SerialEncodable, PartialEq)] pub struct Comment { content: String, author: String, @@ -48,7 +48,7 @@ struct TaskProjects(Vec); #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)] struct TaskAssigns(Vec); -#[derive(Clone, Debug, Serialize, Deserialize, PartialEq)] +#[derive(Clone, Debug, Serialize, Deserialize, SerialEncodable, SerialDecodable, PartialEq)] pub struct TaskInfo { ref_id: String, id: u32, @@ -174,78 +174,6 @@ impl TaskInfo { } } -impl Encodable for TaskEvent { - fn encode(&self, mut s: S) -> Result { - let mut len = 0; - len += self.action.encode(&mut s)?; - len += self.timestamp.encode(&mut s)?; - Ok(len) - } -} - -impl Decodable for TaskEvent { - fn decode(mut d: D) -> Result { - Ok(Self { action: Decodable::decode(&mut d)?, timestamp: Decodable::decode(&mut d)? }) - } -} - -impl Encodable for Comment { - fn encode(&self, mut s: S) -> Result { - let mut len = 0; - len += self.content.encode(&mut s)?; - len += self.author.encode(&mut s)?; - len += self.timestamp.encode(&mut s)?; - Ok(len) - } -} - -impl Decodable for Comment { - fn decode(mut d: D) -> Result { - Ok(Self { - content: Decodable::decode(&mut d)?, - author: Decodable::decode(&mut d)?, - timestamp: Decodable::decode(&mut d)?, - }) - } -} - -impl Encodable for TaskInfo { - fn encode(&self, mut s: S) -> Result { - let mut len = 0; - len += self.ref_id.encode(&mut s)?; - len += self.id.encode(&mut s)?; - len += self.title.encode(&mut s)?; - len += self.desc.encode(&mut s)?; - len += self.assign.encode(&mut s)?; - len += self.project.encode(&mut s)?; - len += self.due.encode(&mut s)?; - len += self.rank.encode(&mut s)?; - len += self.created_at.encode(&mut s)?; - len += self.events.encode(&mut s)?; - len += self.comments.encode(&mut s)?; - Ok(len) - } -} - -impl Decodable for TaskInfo { - fn decode(mut d: D) -> Result { - Ok(Self { - ref_id: Decodable::decode(&mut d)?, - id: Decodable::decode(&mut d)?, - title: Decodable::decode(&mut d)?, - desc: Decodable::decode(&mut d)?, - assign: Decodable::decode(&mut d)?, - project: Decodable::decode(&mut d)?, - due: Decodable::decode(&mut d)?, - rank: Decodable::decode(&mut d)?, - created_at: Decodable::decode(&mut d)?, - events: Decodable::decode(&mut d)?, - comments: Decodable::decode(&mut d)?, - settings: Settings::default(), - }) - } -} - impl Encodable for TaskEvents { fn encode(&self, s: S) -> Result { encode_vec(&self.0, s) diff --git a/bin/taud/src/util.rs b/bin/taud/src/util.rs index 8ff0b08c1..9f32bc249 100644 --- a/bin/taud/src/util.rs +++ b/bin/taud/src/util.rs @@ -1,6 +1,5 @@ use std::{ fs::File, - io, io::BufReader, path::{Path, PathBuf}, }; @@ -13,7 +12,7 @@ use serde::{de::DeserializeOwned, Deserialize, Serialize}; use darkfi::{ util::{ cli::UrlConfig, - serial::{Decodable, Encodable}, + serial::{SerialDecodable, SerialEncodable}, }, Result, }; @@ -51,7 +50,7 @@ pub fn save(path: &Path, value: &T) -> Result<()> { Ok(()) } -#[derive(Clone, Debug, Serialize, Deserialize, PartialEq)] +#[derive(Clone, Debug, Serialize, Deserialize, SerialEncodable, SerialDecodable, PartialEq)] pub struct Settings { pub dataset_path: PathBuf, } @@ -62,23 +61,11 @@ impl Default for Settings { } } -#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, PartialOrd)] +#[derive( + Clone, Debug, Serialize, Deserialize, SerialEncodable, SerialDecodable, PartialEq, PartialOrd, +)] pub struct Timestamp(pub i64); -impl Encodable for Timestamp { - fn encode(&self, mut s: S) -> Result { - let mut len = 0; - len += self.0.encode(&mut s)?; - Ok(len) - } -} - -impl Decodable for Timestamp { - fn decode(mut d: D) -> Result { - Ok(Self(Decodable::decode(&mut d)?)) - } -} - /// taud cli #[derive(Parser)] #[clap(name = "taud")]