Explorar el Código

bin/taud: using serialization derives

ghassmo hace 4 años
padre
commit
637877d49f
Se han modificado 2 ficheros con 9 adiciones y 94 borrados
  1. 4 76
      bin/taud/src/task_info.rs
  2. 5 18
      bin/taud/src/util.rs

+ 4 - 76
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<String>);
 #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
 struct TaskAssigns(Vec<String>);
 
-#[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<S: io::Write>(&self, mut s: S) -> Result<usize> {
-        let mut len = 0;
-        len += self.action.encode(&mut s)?;
-        len += self.timestamp.encode(&mut s)?;
-        Ok(len)
-    }
-}
-
-impl Decodable for TaskEvent {
-    fn decode<D: io::Read>(mut d: D) -> Result<Self> {
-        Ok(Self { action: Decodable::decode(&mut d)?, timestamp: Decodable::decode(&mut d)? })
-    }
-}
-
-impl Encodable for Comment {
-    fn encode<S: io::Write>(&self, mut s: S) -> Result<usize> {
-        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<D: io::Read>(mut d: D) -> Result<Self> {
-        Ok(Self {
-            content: Decodable::decode(&mut d)?,
-            author: Decodable::decode(&mut d)?,
-            timestamp: Decodable::decode(&mut d)?,
-        })
-    }
-}
-
-impl Encodable for TaskInfo {
-    fn encode<S: io::Write>(&self, mut s: S) -> Result<usize> {
-        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<D: io::Read>(mut d: D) -> Result<Self> {
-        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<S: io::Write>(&self, s: S) -> Result<usize> {
         encode_vec(&self.0, s)

+ 5 - 18
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<T: Serialize>(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<S: io::Write>(&self, mut s: S) -> Result<usize> {
-        let mut len = 0;
-        len += self.0.encode(&mut s)?;
-        Ok(len)
-    }
-}
-
-impl Decodable for Timestamp {
-    fn decode<D: io::Read>(mut d: D) -> Result<Self> {
-        Ok(Self(Decodable::decode(&mut d)?))
-    }
-}
-
 /// taud cli
 #[derive(Parser)]
 #[clap(name = "taud")]