rust-bitcoin-unsafe-fast/bitcoin
merge-script c59b9e3d1a
Merge rust-bitcoin/rust-bitcoin#2929: Introduce `ToU64` trait
579b76b7cb Introduce ToU64 conversion trait (Tobin C. Harding)

Pull request description:

  The idea for this was pulled out of Steven's work in #2133

  We already explicitly do not support 16 bit machines.

  Also, because Rust supports `u182`s one cannot infallibly convert from a `usize` to a `u64`. This is unergonomic and results in a ton of casts.

  We can instead limit our code to running only on machines where `usize` is less that or equal to 64 bits then the infallible conversion is possible.

  Since 128 bit machines are not a thing yet this does not in reality introduce any limitations on the library.

  Add a "private" trait to the `internals` crate to do infallible conversion to a `u64` from `usize`.

  Implement it for all unsigned integers smaller than `u64` as well so we have the option to use the trait instead of `u32::from(foo)`.

ACKs for top commit:
  Kixunil:
    ACK 579b76b7cb
  apoelstra:
    ACK 579b76b7cb successfully ran local tests

Tree-SHA512: 2eaddfff995987a346e052386c6dfef3510e4732e674e3a2cfab60ee391b4cce1bf7ba4fb2dfd4926f8203d7251eea2198ccb61f0b40332e624c88fda4fa7f48
2024-08-08 19:05:23 +00:00
..
contrib Bump MSRV to 1.63 2024-07-27 07:24:32 +02:00
embedded Move opcodes to primitives 2024-07-09 15:26:33 +10:00
examples Use lower case error messages 2024-07-15 09:25:08 +01:00
src Merge rust-bitcoin/rust-bitcoin#2929: Introduce `ToU64` trait 2024-08-08 19:05:23 +00:00
tests 2024-07-21 automated rustfmt nightly 2024-07-21 01:11:38 +00:00
CHANGELOG.md Capitalize Merkle 2024-07-01 17:42:43 +01:00
Cargo.toml Remove build cfg for versions less than MSRV 2024-08-08 12:03:06 +10:00
build.rs Remove build cfg for versions less than MSRV 2024-08-08 12:03:06 +10:00