6 个版本
0.1.5 | 2022 年 9 月 7 日 |
---|---|
0.1.4 | 2021 年 9 月 30 日 |
0.1.1 | 2021 年 8 月 31 日 |
#949 在 数据库接口 中
6,791 每月下载量
在 2 crates 中使用
17KB
365 行代码
rust-pg_bigdecimal
Postgres 数值类型(即 "decimal"/"numeric" 下的类型)的 Rust 数据类型实现,用于与 Rust 的 "Postgres" 库一起使用。支持 Postgres 数值类型的完整范围。
创建这个小 Rust 包是因为目前主要的 "Postgres" 库(https://docs.rs/postgres/0.19.1/postgres/index.html)没有提供原生的数据类型来读取/写入数值。
我们只实现了 Postgres 数值数据类型的网络逻辑。我们没有重写整个大数操作的逻辑,而是让这个逻辑由已经流行的 BigDecimal 包(https://docs.rs/bigdecimal/0.3.0/bigdecimal/)实现。
具体来说,我们新的 Rust 数据类型 PgNumeric
简单地是一个可选的 BigDecimal
。其中 None
表示 Postgres 数值值 NaN
,而所有 Some(..)
表示 Postgres 数值数字。
在 crates.io 上列出:https://crates.io/crates/pg_bigdecimal。
类似包的比较
- https://crates.io/crates/rust-decimal 提供了一个 Rust 原生类型,但它表示为 96 位整数数字 + 缩放位 + 1 个符号位。这意味着“仅”(这里引用“仅”是因为它仍然是一个很大的整数空间)Postgres 数值值的一小部分可以被转换。在我们的情况下,这还不够。
依赖关系
~8–18MB
~258K SLoC