summaryrefslogtreecommitdiffstats
path: root/src/parser
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2018-10-30 13:25:33 +0100
committerMatthias Beyer <mail@beyermatthias.de>2018-11-07 18:11:27 +0100
commit6c25067ba3218abbd9c4e60467559edd4d923deb (patch)
tree4d96140108936d0f40c16a96a2874fa384125e61 /src/parser
parentd100fc8d0f456acfd33151de0b6225b6bf601717 (diff)
Move code to failure as error handling library
Diffstat (limited to 'src/parser')
-rw-r--r--src/parser/iterator.rs29
-rw-r--r--src/parser/mod.rs4
-rw-r--r--src/parser/timetype.rs4
3 files changed, 20 insertions, 17 deletions
diff --git a/src/parser/iterator.rs b/src/parser/iterator.rs
index f06edd0..a60892e 100644
--- a/src/parser/iterator.rs
+++ b/src/parser/iterator.rs
@@ -1,5 +1,7 @@
use nom::whitespace::sp;
+use failure::Fallible as Result;
+use failure::Error;
use parser::timetype::*;
use timetype::IntoTimeType;
use timetype;
@@ -64,7 +66,7 @@ named!(pub iterator<Iterator>, do_parse!(
pub struct Iterator(Date, Iterspec, Option<UntilSpec>);
impl Iterator {
- pub fn into_user_iterator(self) -> error::Result<UserIterator<iter::Iter>> {
+ pub fn into_user_iterator(self) -> Result<UserIterator<iter::Iter>> {
use iter::Times;
use iter::Until;
@@ -91,7 +93,8 @@ impl Iterator {
let into_ndt = |e: timetype::TimeType| try!(e.calculate())
.get_moment()
- .ok_or(error::KairosErrorKind::NotADateInsideIterator)
+ .ok_or(error::ErrorKind::NotADateInsideIterator)
+ .map_err(Error::from)
.map(Clone::clone);
match self.2 {
@@ -122,7 +125,7 @@ impl Iterator {
// names are hard
#[derive(Debug)]
pub enum UserIterator<I>
- where I: ::std::iter::Iterator<Item = error::Result<timetype::TimeType>>
+ where I: ::std::iter::Iterator<Item = Result<timetype::TimeType>>
{
Iterator(iter::Iter),
TimesIter(iter::TimesIter<I>),
@@ -130,9 +133,9 @@ pub enum UserIterator<I>
}
impl<I> ::std::iter::Iterator for UserIterator<I>
- where I: ::std::iter::Iterator<Item = error::Result<timetype::TimeType>>
+ where I: ::std::iter::Iterator<Item = Result<timetype::TimeType>>
{
- type Item = error::Result<timetype::TimeType>;
+ type Item = Result<timetype::TimeType>;
fn next(&mut self) -> Option<Self::Item> {
match *self {
@@ -171,7 +174,7 @@ mod tests {
let (_, i) = res.unwrap();
println!("{:#?}", i);
- let ui : Result<UserIterator<iter::Iter>, _> = i.into_user_iterator();
+ let ui : Result<UserIterator<iter::Iter>> = i.into_user_iterator();
assert!(ui.is_ok(), "Not okay: {:#?}", ui);
let mut ui = ui.unwrap();
@@ -195,7 +198,7 @@ mod tests {
let (_, i) = res.unwrap();
println!("{:#?}", i);
- let ui : Result<UserIterator<iter::Iter>, _> = i.into_user_iterator();
+ let ui : Result<UserIterator<iter::Iter>> = i.into_user_iterator();
assert!(ui.is_ok(), "Not okay: {:#?}", ui);
let mut ui = ui.unwrap();
@@ -219,7 +222,7 @@ mod tests {
let (_, i) = res.unwrap();
println!("{:#?}", i);
- let ui : Result<UserIterator<iter::Iter>, _> = i.into_user_iterator();
+ let ui : Result<UserIterator<iter::Iter>> = i.into_user_iterator();
assert!(ui.is_ok(), "Not okay: {:#?}", ui);
let mut ui = ui.unwrap();
@@ -243,7 +246,7 @@ mod tests {
let (_, i) = res.unwrap();
println!("{:#?}", i);
- let ui : Result<UserIterator<iter::Iter>, _> = i.into_user_iterator();
+ let ui : Result<UserIterator<iter::Iter>> = i.into_user_iterator();
assert!(ui.is_ok(), "Not okay: {:#?}", ui);
let mut ui = ui.unwrap();
@@ -275,7 +278,7 @@ mod tests {
let (_, i) = res.unwrap();
println!("{:#?}", i);
- let ui : Result<UserIterator<iter::Iter>, _> = i.into_user_iterator();
+ let ui : Result<UserIterator<iter::Iter>> = i.into_user_iterator();
assert!(ui.is_ok(), "Not okay: {:#?}", ui);
let mut ui = ui.unwrap();
println!("Okay: {:#?}", ui);
@@ -306,7 +309,7 @@ mod tests {
let (_, i) = res.unwrap();
println!("{:#?}", i);
- let ui : Result<UserIterator<iter::Iter>, _> = i.into_user_iterator();
+ let ui : Result<UserIterator<iter::Iter>> = i.into_user_iterator();
assert!(ui.is_ok(), "Not okay: {:#?}", ui);
let mut ui = ui.unwrap();
@@ -336,7 +339,7 @@ mod tests {
let (_, i) = res.unwrap();
println!("{:#?}", i);
- let ui : Result<UserIterator<iter::Iter>, _> = i.into_user_iterator();
+ let ui : Result<UserIterator<iter::Iter>> = i.into_user_iterator();
assert!(ui.is_ok(), "Not okay: {:#?}", ui);
let mut ui = ui.unwrap();
@@ -366,7 +369,7 @@ mod tests {
let (_, i) = res.unwrap();
println!("{:#?}", i);
- let ui : Result<UserIterator<iter::Iter>, _> = i.into_user_iterator();
+ let ui : Result<UserIterator<iter::Iter>> = i.into_user_iterator();
assert!(ui.is_ok(), "Not okay: {:#?}", ui);
let mut ui = ui.unwrap();
diff --git a/src/parser/mod.rs b/src/parser/mod.rs
index f67a3cb..c6483b4 100644
--- a/src/parser/mod.rs
+++ b/src/parser/mod.rs
@@ -49,8 +49,8 @@ use nom::IResult;
mod timetype;
mod iterator;
-use error::Result;
-use error::KairosErrorKind as KEK;
+use failure::Fallible as Result;
+use error::ErrorKind as KEK;
use iter::Iter;
use timetype::IntoTimeType;
use parser::timetype::timetype;
diff --git a/src/parser/timetype.rs b/src/parser/timetype.rs
index 83516fe..13f111b 100644
--- a/src/parser/timetype.rs
+++ b/src/parser/timetype.rs
@@ -4,11 +4,11 @@ use std::str::FromStr;
use nom::digit;
use nom::whitespace::sp;
use chrono::NaiveDate;
+use failure::Fallible as Result;
use timetype::IntoTimeType;
use timetype;
-use error::Result;
-use error::KairosErrorKind as KEK;
+use error::ErrorKind as KEK;
named!(pub integer<i64>, alt!(
map_res!(