bin/taud: using serialization derives

This commit is contained in:
ghassmo
2022-03-28 06:55:40 +04:00
committed by parazyd
parent 74414f12ab
commit 637877d49f
2 changed files with 9 additions and 94 deletions

View File

@@ -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)

View File

@@ -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")]