4 个版本 (2 个稳定版)
1.0.1 | 2024 年 3 月 17 日 |
---|---|
1.0.0 | 2021 年 9 月 6 日 |
0.2.0 | 2020 年 1 月 27 日 |
0.1.0 | 2020 年 1 月 25 日 |
#80 在 日期和时间
3.5MB
946 行
zone-detect
这是一个 ZoneDetect C 库的 Rust 版本。初始转换使用 c2rust 完成,然后手动清理(不再包含任何不安全代码)。
此 crate 可用于查找地球上任何位置的国家和时区。
运行示例
$ cargo run --example demo data/timezone21.bin 35.0715 -82.5216
zone 0: ZoneMatch {
kind: InZone,
zone: Zone {
polygon_id: 1458,
meta_id: 3199,
fields: {
"CountryAlpha2": "US",
"CountryName": "United States",
"TimezoneIdPrefix": "America/",
"TimezoneId": "New_York",
},
},
}
数据源
包含位置和时区数据的数据库位于 data/timezone21.bin
。它可以按以下方式更新
git clone https://github.com/BertoldVdb/ZoneDetect
cd ZoneDetect/database/builder
./makedb.sh
cp out_v1/timezone21.bin zone-detect-rs/data/timezone21.bin
测试
有一个慢速测试会生成随机值,并比较 ZoneDetect 和 zone-detect-rs 的输出。
# Make sure the demo is built first; just run `make` in the ZoneDetect repo.
ZONEDETECT_DEMO=../ZoneDetect/demo cargo test -- --ignored