1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
#[macro_use] extern crate nom; macro_rules! impl_fromstr_parse { ($ty:ty, $func:ident) => { impl ::std::str::FromStr for $ty { type Err = (); fn from_str(s: &str) -> Result<Self, Self::Err> { ::parse::$func(s.as_bytes()) .map(|x| x.1) .or(Err(())) } } } } mod date; mod time; mod datetime; mod parse; pub mod chrono; pub use { date::*, time::*, datetime::* }; pub trait Valid { fn is_valid(&self) -> bool; }