rust-bitcoin-unsafe-fast/units
Tobin C. Harding dedae8acf2
Implement custom serde modules for FeeRate
The `FeeRate` type wraps a `u64` but the inner value implicitly contains
information about the unit. As such when serializing and deserializing
the unit information is not explicit and if users try to deserialize
with a different unit their code will be silently buggy.

As we do for Amount; add custom serde modules so that users can
serialize in an explicit unit. Furthermore remove the derived impls
forcing users to make the decision. This is as we do for `Amount`.

With this applied one can write

```rust
    #[derive(Serialize, Deserialize)]
    pub struct Foo {
        #[serde(with = "bitcoin_units::fee_rate::serde::as_sat_per_kwu")]
        pub fee_rate: FeeRate,
    }
```
2024-12-28 08:15:13 +11:00
..
contrib Add Arbitrary dependency 2024-08-23 15:39:20 -05:00
src Implement custom serde modules for FeeRate 2024-12-28 08:15:13 +11:00
tests Add missing license comment to test file 2024-12-28 08:02:52 +11:00
CHANGELOG.md bitcoin: Bump version to v0.33.0-alpha.0 2024-12-04 15:58:36 +11:00
Cargo.toml units: Move excluded lints to manifest 2024-12-18 08:25:12 +11:00
README.md Bump MSRV to 1.63 2024-07-27 07:24:32 +02:00

README.md

Bitcoin Units

This crate provides basic Bitcoin numeric units such as Amount.

Minimum Supported Rust Version (MSRV)

This library should always compile with any combination of features on Rust 1.63.0.

Licensing

The code in this project is licensed under the Creative Commons CC0 1.0 Universal license. We use the SPDX license list and SPDX IDs.