#date-time #duration #date #calendar #local-time #time #comments

无 std clia-time

一个个人临时时间库,使用 tz-rs 获取本地偏移量

3 个版本

0.3.10 2022 年 10 月 19 日
0.3.9 2022 年 3 月 9 日
0.3.8 2022 年 3 月 8 日

#1588解析器实现

25 每月下载量

MIT/Apache

400KB
7K SLoC

clia-time

这是一个个人临时时间库,使用 tz-rs 获取本地偏移量。

它与 time-rs crate 没有关系。


lib.rs:

特性标志

此库公开了许多特性。可以根据 Cargo 文档 中所示进行启用或禁用。除非另有说明,否则特性默认为禁用。

对于特定特性的依赖始终会在项目定义旁边指示。

  • std (默认启用,隐式启用 alloc)

    这启用了许多依赖于标准库的特性。

  • alloc (通过 std 默认启用)

    启用了一些需要动态分配内存能力的特性。

  • 启用了一些提供编译时验证值和直观语法的宏。

  • formatting (隐式启用 std)

    启用了对大多数结构体的格式化。

  • 解析

    启用了对大多数结构体的解析。

  • local-offset (隐式启用 std)

    此特性启用了一些允许获取系统 UTC 偏移量的方法。

  • 大日期

    默认情况下,仅支持 ±9999 范围内的年份(包括)。如果您需要支持此范围之外的年份,请考虑启用此特性;支持范围将增加到 ±999,999。

    请注意,启用此特性有一些成本,这意味着您将放弃一些优化。在解析时可能会引入一些不存在的歧义。

    如果您使用此特性,请 在以下讨论中留下评论 此处 介绍您的使用情况。如果对此特性的需求不足,它将在未来的版本中删除。

  • serde

    为所有类型启用 serde 支持,除了 Instant

  • serde-human-readable (隐式启用 serdeformattingparsing)

    允许 serde 表示形式使用人类可读的格式。这由序列化器决定,而不是用户。如果此功能未启用或序列化器请求非人类可读的格式,则将使用优化二进制表示的格式。

    库不应启用此功能,因为使用哪种格式的决定应该由用户决定。

  • serde-well-known (隐式启用 serde/allocformattingparsing)

    启用使用 serde 的 #[with] 属性 对已知格式进行序列化和反序列化的支持。

  • rand

    启用对所有类型的 rand 支持。

  • quickcheck (隐式启用 alloc)

    启用对所有类型(除 Instant 外)的 quickcheck 支持。

一个仅对最终用户可用的伪特性标志是 unsound_local_offset cfg。正如其名所示,使用此特性是不稳定的,并且可能会造成意外的段错误。与其他标志不同,这故意只对最终用户可用;这是为了确保用户不会在不了解的情况下有不稳定的行为。要启用此行为,您必须使用 RUSTFLAGS="--cfg unsound_local_offset" cargo build 或类似命令。注意:此标志在 任何地方都没有测试,包括所有特性标志的全集常规测试。自行承担风险。没有此标志,任何需要本地偏移的方法都将返回 Err 变体。

依赖项

~0–450KB