summaryrefslogtreecommitdiffstats
path: root/src/status.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/status.rs')
-rw-r--r--src/status.rs62
1 files changed, 2 insertions, 60 deletions
diff --git a/src/status.rs b/src/status.rs
index 8cdf420..5a0004c 100644
--- a/src/status.rs
+++ b/src/status.rs
@@ -6,19 +6,10 @@
//! Module containing `TaskStatus` type and trait impls
-use std::fmt::{Display, Formatter};
-use std::fmt::Error as FmtError;
-use std::fmt::Result as FmtResult;
-
-use serde::Serialize;
-use serde::Serializer;
-use serde::Deserialize;
-use serde::Deserializer;
-use serde::de::Error;
-use serde::de::Visitor;
+use std::fmt::{Display, Formatter, Error as FmtError};
/// Enum for status taskwarrior supports.
-#[derive(Clone, Debug, PartialEq, Eq)]
+#[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)]
pub enum TaskStatus {
/// Pening status type
Pending,
@@ -49,52 +40,3 @@ impl Display for TaskStatus {
}
}
-impl Serialize for TaskStatus {
-
- fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
- where S: Serializer
- {
- serializer.serialize_str(
- match self {
- &TaskStatus::Pending => "pending",
- &TaskStatus::Deleted => "deleted",
- &TaskStatus::Completed => "completed",
- &TaskStatus::Waiting => "waiting",
- &TaskStatus::Recurring => "recurring",
- }
- )
- }
-
-}
-
-impl Deserialize for TaskStatus {
- fn deserialize<D>(deserializer: D) -> Result<TaskStatus, D::Error>
- where D: Deserializer
- {
- struct TaskStatusVisitor;
-
- impl Visitor for TaskStatusVisitor {
- type Value = TaskStatus;
-
- fn expecting(&self, fmt: &mut Formatter) -> FmtResult {
- write!(fmt, "a taskwarrior status ('pending', 'deleted', ...)")
- }
-
- fn visit_str<E>(self, value: &str) -> Result<TaskStatus, E>
- where E: Error
- {
- match value {
- "pending" => Ok(TaskStatus::Pending),
- "deleted" => Ok(TaskStatus::Deleted),
- "completed" => Ok(TaskStatus::Completed),
- "waiting" => Ok(TaskStatus::Waiting),
- "recurring" => Ok(TaskStatus::Recurring),
- _ => Err(Error::custom("expected one of pending, deleted, completed, waiting, recurring")),
- }
- }
- }
-
- deserializer.deserialize(TaskStatusVisitor)
- }
-}
-