chore(cargo): remove chrono from default features

This commit is contained in:
PoiScript 2019-06-28 19:36:43 +08:00
parent 6b0f468f9f
commit afcb5090ec
3 changed files with 27 additions and 25 deletions

View file

@ -9,11 +9,14 @@ edition = "2018"
license = "MIT" license = "MIT"
keywords = ["orgmode", "emacs", "parser"] keywords = ["orgmode", "emacs", "parser"]
[package.metadata.docs.rs]
all-features = true
[badges] [badges]
travis-ci = { repository = "PoiScript/orgize" } travis-ci = { repository = "PoiScript/orgize" }
[features] [features]
default = ["serde", "chrono"] default = ["serde"]
extra-serde-info = ["serde"] extra-serde-info = ["serde"]
[dependencies] [dependencies]

View file

@ -1,3 +1,5 @@
#[cfg(feature = "chrono")]
use chrono::*;
use memchr::memchr; use memchr::memchr;
use std::str::FromStr; use std::str::FromStr;
@ -47,33 +49,30 @@ impl Datetime<'_> {
pub fn dayname(&self) -> &str { pub fn dayname(&self) -> &str {
self.dayname self.dayname
} }
}
#[cfg(feature = "chrono")] #[cfg(feature = "chrono")]
mod chrono { pub fn naive_date(&self) -> NaiveDate {
use super::Datetime; NaiveDate::from_ymd(self.year() as i32, self.month(), self.day())
use chrono::*; }
impl<'a> Datetime<'a> { #[cfg(feature = "chrono")]
pub fn naive_date(&self) -> NaiveDate { pub fn naive_time(&self) -> NaiveTime {
NaiveDate::from_ymd(self.year() as i32, self.month(), self.day()) NaiveTime::from_hms(self.hour().unwrap_or(0), self.minute().unwrap_or(0), 0)
} }
pub fn naive_time(&self) -> NaiveTime { #[cfg(feature = "chrono")]
NaiveTime::from_hms(self.hour().unwrap_or(0), self.minute().unwrap_or(0), 0) pub fn naive_date_time(&self) -> NaiveDateTime {
} NaiveDateTime::new(self.naive_date(), self.naive_time())
}
pub fn naive_date_time(&self) -> NaiveDateTime { #[cfg(feature = "chrono")]
NaiveDateTime::new(self.naive_date(), self.naive_time()) pub fn date_time<Tz: TimeZone>(&self, offset: Tz::Offset) -> DateTime<Tz> {
} DateTime::from_utc(self.naive_date_time(), offset)
}
pub fn date_time<Tz: TimeZone>(&self, offset: Tz::Offset) -> DateTime<Tz> { #[cfg(feature = "chrono")]
DateTime::from_utc(self.naive_date_time(), offset) pub fn date<Tz: TimeZone>(&self, offset: Tz::Offset) -> Date<Tz> {
} Date::from_utc(self.naive_date(), offset)
pub fn date<Tz: TimeZone>(&self, offset: Tz::Offset) -> Date<Tz> {
Date::from_utc(self.naive_date(), offset)
}
} }
} }

View file

@ -250,9 +250,9 @@ impl<'a> Org<'a> {
fn parse_elements_children(&mut self, begin: usize, end: usize, node: NodeId) { fn parse_elements_children(&mut self, begin: usize, end: usize, node: NodeId) {
let text = &self.text[begin..end]; let text = &self.text[begin..end];
let mut pos = 0; let mut pos = skip_empty_lines(text);
if let Some((ty, off)) = self.parse_element(begin, end) { if let Some((ty, off)) = self.parse_element(begin + pos, end) {
let new_node = self.arena.new_node(ty); let new_node = self.arena.new_node(ty);
node.append(new_node, &mut self.arena).unwrap(); node.append(new_node, &mut self.arena).unwrap();
pos += off + skip_empty_lines(&text[off..]); pos += off + skip_empty_lines(&text[off..]);