Timelib for Rust is a small Rust wrapper around the timelib library that is used to power PHP and MongoDB.
You can install with:
cargo add timeliblet tz = timelib::Timezone::parse("America/Chicago").expect("Error parsing timezone!");
timelib::strtotime("tomorrow", None, &tz);
timelib::strtotime("next tuesday", Some(1654318823), &tz);View the tests for more examples.
The genereated re2c outputs are bundled and automatically used. If you wish to generate these files yourself, do the following:
- Install 
re2c. You can install it easily on all major platforms:- Linux: 
apt-get install re2c - Mac: 
brew install re2c - Windows: 
choco install re2c - From source: re2c.org
 
 - Linux: 
 - Enable the 
re2cfeature:timelib = { version = "0.3", features = ["re2c"] }
 
Make sure to check out all submodules.
Initial clone:
git clone --recurse-submodules https://github.com/westy92/timelib-rustPost-clone:
git submodule init && git submodule updateYou should now be able to run cargo build and cargo test.
If using the re2c feature, make sure to install re2c as described above. i.e. cargo test --features re2c.
git submodule update --remoteMake sure to regenerate the re2c outputs and copy them to pregenerated/.
cd ext/timelib/
make parse_date.c parse_iso_intervals.c
cp parse_date.c ../../pregenerated/
cp parse_iso_intervals.c ../../pregenerated/Remove --dry-run to publish for real.
cargo publish --dry-run