diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2017-01-30 08:21:15 +0100 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2017-01-30 08:21:15 +0100 |
commit | ad5f5c27b810db990913c3a13dea8f292baabbc9 (patch) | |
tree | 2d23f2268f359a8c53b47b41ea6c3508d1e8a3b5 /src | |
parent | 729975f5640a22241dbf298ec66c2c86b89552f3 (diff) |
Add new function for Visitor: expecting()
Diffstat (limited to 'src')
-rw-r--r-- | src/annotation.rs | 6 | ||||
-rw-r--r-- | src/date.rs | 6 | ||||
-rw-r--r-- | src/priority.rs | 7 | ||||
-rw-r--r-- | src/status.rs | 5 | ||||
-rw-r--r-- | src/task.rs | 6 |
5 files changed, 30 insertions, 0 deletions
diff --git a/src/annotation.rs b/src/annotation.rs index b2b3b8a..1a73545 100644 --- a/src/annotation.rs +++ b/src/annotation.rs @@ -7,6 +7,8 @@ //! Module containing types and functions for annotations of tasks use std::result::Result as RResult; +use std::fmt::Formatter; +use std::fmt::Result as FmtResult; use serde::Serialize; use serde::Serializer; @@ -82,6 +84,10 @@ struct AnnotationDeserializeVisitor; impl Visitor for AnnotationDeserializeVisitor { type Value = Annotation; + fn expecting(&self, fmt: &mut Formatter) -> FmtResult { + write!(fmt, "a taskwarrior annotation object") + } + fn visit_map<V>(&mut self, mut visitor: V) -> RResult<Annotation, V::Error> where V: DeserializeMapVisitor { diff --git a/src/date.rs b/src/date.rs index ec554fb..c079510 100644 --- a/src/date.rs +++ b/src/date.rs @@ -8,6 +8,8 @@ use std::error::Error; use std::ops::{Deref, DerefMut}; +use std::fmt::Formatter; +use std::fmt::Result as FmtResult; use serde::Serialize; use serde::Serializer; @@ -70,6 +72,10 @@ impl Deserialize for Date { impl Visitor for DateVisitor { type Value = Date; + fn expecting(&self, fmt: &mut Formatter) -> FmtResult { + write!(fmt, "a taskwarrior time string") + } + fn visit_str<E>(&mut self, value: &str) -> Result<Date, E> where E: SerdeError { diff --git a/src/priority.rs b/src/priority.rs index f9f365f..125640e 100644 --- a/src/priority.rs +++ b/src/priority.rs @@ -13,6 +13,9 @@ use serde::de::Deserializer; use serde::Error; use serde::de::Visitor; +use std::fmt::Formatter; +use std::fmt::Result as FmtResult; + /// Enum for the priorities taskwarrior supports. #[derive(Debug, Clone, PartialEq)] pub enum TaskPriority { @@ -53,6 +56,10 @@ impl Deserialize for TaskPriority { 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>(&mut self, value: &str) -> Result<TaskPriority, E> where E: Error { diff --git a/src/status.rs b/src/status.rs index 6212e56..7a3c90d 100644 --- a/src/status.rs +++ b/src/status.rs @@ -8,6 +8,7 @@ use std::fmt::{Display, Formatter}; use std::fmt::Error as FmtError; +use std::fmt::Result as FmtResult; use serde::Serialize; use serde::Serializer; @@ -75,6 +76,10 @@ impl Deserialize for TaskStatus { 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>(&mut self, value: &str) -> Result<TaskStatus, E> where E: Error { diff --git a/src/task.rs b/src/task.rs index 7ddd04c..eb04853 100644 --- a/src/task.rs +++ b/src/task.rs @@ -7,6 +7,8 @@ //! Module containing `Task` type as well as trait implementations use std::result::Result as RResult; +use std::fmt::Formatter; +use std::fmt::Result as FmtResult; use serde::Serialize; use serde::Serializer; @@ -350,6 +352,10 @@ struct TaskDeserializeVisitor; impl Visitor for TaskDeserializeVisitor { type Value = Task; + fn expecting(&self, fmt: &mut Formatter) -> FmtResult { + write!(fmt, "a taskwarrior exported JSON object") + } + fn visit_map<V>(&mut self, mut visitor: V) -> RResult<Task, V::Error> where V: DeserializeMapVisitor { |