10 个版本

0.3.4 2024年4月6日
0.3.3 2024年2月13日
0.3.2 2023年8月3日
0.2.1 2023年6月4日
0.1.1 2023年5月7日

#149 in 日期和时间

MIT 许可协议

1.5MB
46K SLoC

C 30K SLoC // 0.0% comments C++ 14K SLoC // 0.0% comments PHP 1K SLoC // 0.0% comments OCaml 411 SLoC // 0.9% comments Rust 271 SLoC // 0.0% comments Bitbake 249 SLoC // 0.1% comments

Timelib for Rust

Crates.io Build Status docs.rs Code Coverage Funding Status

Timelib for Rust 是一个围绕 timelib 库的 Rust 封装,该库用于驱动 PHP 和 MongoDB。

安装

可以使用以下方式安装:

cargo add timelib

使用方法

let tz = timelib::Timezone::parse("America/Chicago").expect("Error parsing timezone!");
timelib::strtotime("tomorrow", None, &tz);
timelib::strtotime("next tuesday", Some(1654318823), &tz);

查看测试用例以获取更多示例。

可选特性

生成的 re2c 输出已打包并自动使用。如果您想自己生成这些文件,请按照以下步骤操作:

  1. 安装 re2c。您可以在所有主要平台上轻松安装它
    • Linux: apt-get install re2c
    • Mac: brew install re2c
    • Windows: choco install re2c
    • 从源代码: re2c.org
  2. 启用 re2c 特性
    • timelib= {版本= "0.2.0",特性= ["re2c"] }

构建

确保检出所有子模块。

初始克隆

git clone --recurse-submodules https://github.com/westy92/timelib-rust

克隆后

git submodule init && git submodule update

现在您应该能够运行 cargo buildcargo test

如果使用 re2c 特性,请确保按照上述说明安装 re2c。例如: cargo test --features re2c

更新子模块版本

git submodule update --remote

确保重新生成 re2c 输出并将它们复制到 pregenerated/

cd ext/timelib/
make parse_date.c parse_iso_intervals.c
cp parse_date.c ../../pregenerated/
cp parse_iso_intervals.c ../../pregenerated/

发布

移除 --dry-run 以实际发布。

cargo publish --dry-run

无运行时依赖