summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2017-01-30 08:21:15 +0100
committerMatthias Beyer <mail@beyermatthias.de>2017-01-30 08:21:15 +0100
commitad5f5c27b810db990913c3a13dea8f292baabbc9 (patch)
tree2d23f2268f359a8c53b47b41ea6c3508d1e8a3b5
parent729975f5640a22241dbf298ec66c2c86b89552f3 (diff)
Add new function for Visitor: expecting()
-rw-r--r--src/annotation.rs6
-rw-r--r--src/date.rs6
-rw-r--r--src/priority.rs7
-rw-r--r--src/status.rs5
-rw-r--r--src/task.rs6
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
{