summaryrefslogtreecommitdiffstats
path: root/src/priority.rs
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2017-02-03 08:31:48 +0100
committerMatthias Beyer <mail@beyermatthias.de>2017-02-03 15:10:33 +0100
commit4cf63eb00d9e43056f40b122642b2e40a7ee120e (patch)
treebd5b8f3d86e48a848aa33a37122a9ccbc53933fb /src/priority.rs
parent83d4deaa6e63439e2b2f5e580691772793f26cbb (diff)
Try out whether deriving works
Diffstat (limited to 'src/priority.rs')
-rw-r--r--src/priority.rs59
1 files changed, 1 insertions, 58 deletions
diff --git a/src/priority.rs b/src/priority.rs
index d9a2554..20fd673 100644
--- a/src/priority.rs
+++ b/src/priority.rs
@@ -6,18 +6,8 @@
//! Module containing TaskPriority types and trait impls
-use serde::Serialize;
-use serde::ser::Serializer;
-use serde::de::Deserialize;
-use serde::de::Deserializer;
-use serde::de::Error as DeError;
-use serde::de::Visitor;
-
-use std::fmt::Formatter;
-use std::fmt::Result as FmtResult;
-
/// Enum for the priorities taskwarrior supports.
-#[derive(Debug, Clone, PartialEq)]
+#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub enum TaskPriority {
/// Low prio for a Task
Low,
@@ -29,50 +19,3 @@ pub enum TaskPriority {
High,
}
-
-impl Serialize for TaskPriority {
-
- fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
- where S: Serializer
- {
- serializer.serialize_str(
- match self {
- &TaskPriority::Low => "L",
- &TaskPriority::Medium => "M",
- &TaskPriority::High => "H",
- }
- )
- }
-
-}
-
-impl Deserialize for TaskPriority {
-
- fn deserialize<D>(deserializer: D) -> Result<TaskPriority, D::Error>
- where D: Deserializer
- {
- struct TaskPriorityVisitor;
-
- impl Visitor for TaskPriorityVisitor {
- type Value = TaskPriority;
-
- fn expecting(&self, fmt: &mut Formatter) -> FmtResult {
- write!(fmt, "one of 'L', 'M', 'H'")
- }
-
- fn visit_str<E>(self, value: &str) -> Result<TaskPriority, E>
- where E: DeError
- {
- match value {
- "L" => Ok(TaskPriority::Low),
- "M" => Ok(TaskPriority::Medium),
- "H" => Ok(TaskPriority::High),
- _ => Err(DeError::custom("expected one of 'L', 'M', 'H'")),
- }
- }
- }
-
- deserializer.deserialize(TaskPriorityVisitor)
- }
-}
-