Expand description
A Rust port of chrono-node: natural-language date parsing.
use chrono_node::{parse, JsDate, ReferenceInput};
let reference = ReferenceInput::Date(JsDate::parse_iso("2012-08-10T09:00:00.000Z").unwrap());
let results = parse("Let's meet", &reference);
assert!(results.is_empty() || results[0].index > 0);The port follows upstream closely, file by file. The system time zone is always UTC: a
reference without a time zone is read as UTC (see PORTING.md).
Re-exports§
pub use crate::core::chrono::Chrono;pub use crate::core::chrono::Extracted;pub use crate::core::chrono::Parser;pub use crate::core::chrono::Refiner;pub use crate::core::components::Component;pub use crate::core::components::ParsingComponents;pub use crate::core::context::ParsingContext;pub use crate::core::context::ParsingOption;pub use crate::core::js_date::JsDate;pub use crate::core::reference::ParsingReference;pub use crate::core::reference::ReferenceInput;pub use crate::core::reference::ReferenceWithTimezone;pub use crate::core::result::ParsingResult;pub use crate::core::timezone::TimezoneInput;
Modules§
- calculation
- Date calculations (upstream
src/calculation/). - common
- Steps shared by all locales (upstream
src/common/). - core
- The engine: types, JS
Dateand regex emulation, configuration and the parse loop. - locales
- Locales. One module per language; each has
configuration.rs,parsers/andrefiners/.
Macros§
- js_
regex - A lazily compiled
&'static JsRegex:js_regex!(r"(\d+)\s*days?", "i").
Functions§
- casual
chrono.casual(English).- configuration
- A named configuration:
en.casual,en.strict,en.GB.casual,en.GB.strict,de.casual, … (seeconfiguration_names). - configuration_
names - Every named configuration
configurationknows: the hand-scaffolded ones, then the generated locales’ (harness/onboard/onboard.js). - parse
chrono.parse(text, ref)with the casual English configuration.- parse_
date chrono.parseDate(text, ref)with the casual English configuration.- strict
chrono.strict(English).