From 3ecf6b87f788c8ba3d30d80ca3700a7d8f7e355f Mon Sep 17 00:00:00 2001 From: Fethbita Date: Wed, 19 Nov 2025 14:01:16 +0200 Subject: [PATCH 1/6] Add extra sizes from 8k to 16k that were missing under a new feature --- Cargo.toml | 1 + src/uint.rs | 5 + src/uint/extra_sizes_16k.rs | 205 ++++++++++++++++++++++++++++++++++++ 3 files changed, 211 insertions(+) create mode 100644 src/uint/extra_sizes_16k.rs diff --git a/Cargo.toml b/Cargo.toml index ec4ad9cd..301e1610 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -44,6 +44,7 @@ default = ["rand"] alloc = ["serdect?/alloc"] extra-sizes = [] +extra-sizes-16k = ["extra-sizes"] rand = ["rand_core"] serde = ["dep:serdect"] diff --git a/src/uint.rs b/src/uint.rs index c27ae6a8..3fa45d82 100644 --- a/src/uint.rs +++ b/src/uint.rs @@ -13,6 +13,9 @@ use zeroize::DefaultIsZeroes; #[cfg(feature = "extra-sizes")] pub use extra_sizes::*; +#[cfg(feature = "extra-sizes-16k")] +pub use extra_sizes_16k::*; + pub(crate) use ref_type::UintRef; use crate::{ @@ -529,6 +532,8 @@ impl_uint_concat_split_mixed! { #[cfg(feature = "extra-sizes")] mod extra_sizes; +#[cfg(feature = "extra-sizes-16k")] +mod extra_sizes_16k; mod mul_int; mod ref_type; diff --git a/src/uint/extra_sizes_16k.rs b/src/uint/extra_sizes_16k.rs new file mode 100644 index 00000000..8ed05746 --- /dev/null +++ b/src/uint/extra_sizes_16k.rs @@ -0,0 +1,205 @@ +//! Support for additional integer sizes beyond the core set which is defined +//! in the toplevel module. +//! +//! These are feature-gated to keep compile times down for applications which +//! do not need them. +// TODO(tarcieri): switch to a fully const generic implementation using `generic_const_exprs` + +use super::*; +use extra_sizes::*; + +impl_uint_aliases! { + (U8256, 8256, "8256-bit"), + (U8320, 8320, "8320-bit"), + (U8384, 8384, "8384-bit"), + (U8448, 8448, "8448-bit"), + (U8512, 8512, "8512-bit"), + (U8576, 8576, "8576-bit"), + (U8640, 8640, "8640-bit"), + (U8704, 8704, "8704-bit"), + (U8768, 8768, "8768-bit"), + (U8832, 8832, "8832-bit"), + (U8896, 8896, "8896-bit"), + (U8960, 8960, "8960-bit"), + (U9024, 9024, "9024-bit"), + (U9088, 9088, "9088-bit"), + (U9152, 9152, "9152-bit"), + (U9216, 9216, "9216-bit"), + (U9280, 9280, "9280-bit"), + (U9344, 9344, "9344-bit"), + (U9408, 9408, "9408-bit"), + (U9472, 9472, "9472-bit"), + (U9536, 9536, "9536-bit"), + (U9600, 9600, "9600-bit"), + (U9664, 9664, "9664-bit"), + (U9728, 9728, "9728-bit"), + (U9792, 9792, "9792-bit"), + (U9856, 9856, "9856-bit"), + (U9920, 9920, "9920-bit"), + (U9984, 9984, "9984-bit"), + (U10048, 10048, "10048-bit"), + (U10112, 10112, "10112-bit"), + (U10176, 10176, "10176-bit"), + (U10240, 10240, "10240-bit"), + (U10304, 10304, "10304-bit"), + (U10368, 10368, "10368-bit"), + (U10432, 10432, "10432-bit"), + (U10496, 10496, "10496-bit"), + (U10560, 10560, "10560-bit"), + (U10624, 10624, "10624-bit"), + (U10688, 10688, "10688-bit"), + (U10752, 10752, "10752-bit"), + (U10816, 10816, "10816-bit"), + (U10880, 10880, "10880-bit"), + (U10944, 10944, "10944-bit"), + (U11008, 11008, "11008-bit"), + (U11072, 11072, "11072-bit"), + (U11136, 11136, "11136-bit"), + (U11200, 11200, "11200-bit"), + (U11264, 11264, "11264-bit"), + (U11328, 11328, "11328-bit"), + (U11392, 11392, "11392-bit"), + (U11456, 11456, "11456-bit"), + (U11520, 11520, "11520-bit"), + (U11584, 11584, "11584-bit"), + (U11648, 11648, "11648-bit"), + (U11712, 11712, "11712-bit"), + (U11776, 11776, "11776-bit"), + (U11840, 11840, "11840-bit"), + (U11904, 11904, "11904-bit"), + (U11968, 11968, "11968-bit"), + (U12032, 12032, "12032-bit"), + (U12096, 12096, "12096-bit"), + (U12160, 12160, "12160-bit"), + (U12224, 12224, "12224-bit"), + (U12288, 12288, "12288-bit"), + (U12352, 12352, "12352-bit"), + (U12416, 12416, "12416-bit"), + (U12480, 12480, "12480-bit"), + (U12544, 12544, "12544-bit"), + (U12608, 12608, "12608-bit"), + (U12672, 12672, "12672-bit"), + (U12736, 12736, "12736-bit"), + (U12800, 12800, "12800-bit"), + (U12864, 12864, "12864-bit"), + (U12928, 12928, "12928-bit"), + (U12992, 12992, "12992-bit"), + (U13056, 13056, "13056-bit"), + (U13120, 13120, "13120-bit"), + (U13184, 13184, "13184-bit"), + (U13248, 13248, "13248-bit"), + (U13312, 13312, "13312-bit"), + (U13376, 13376, "13376-bit"), + (U13440, 13440, "13440-bit"), + (U13504, 13504, "13504-bit"), + (U13568, 13568, "13568-bit"), + (U13632, 13632, "13632-bit"), + (U13696, 13696, "13696-bit"), + (U13760, 13760, "13760-bit"), + (U13824, 13824, "13824-bit"), + (U13888, 13888, "13888-bit"), + (U13952, 13952, "13952-bit"), + (U14016, 14016, "14016-bit"), + (U14080, 14080, "14080-bit"), + (U14144, 14144, "14144-bit"), + (U14208, 14208, "14208-bit"), + (U14272, 14272, "14272-bit"), + (U14336, 14336, "14336-bit"), + (U14400, 14400, "14400-bit"), + (U14464, 14464, "14464-bit"), + (U14528, 14528, "14528-bit"), + (U14592, 14592, "14592-bit"), + (U14656, 14656, "14656-bit"), + (U14720, 14720, "14720-bit"), + (U14784, 14784, "14784-bit"), + (U14848, 14848, "14848-bit"), + (U14912, 14912, "14912-bit"), + (U14976, 14976, "14976-bit"), + (U15040, 15040, "15040-bit"), + (U15104, 15104, "15104-bit"), + (U15168, 15168, "15168-bit"), + (U15232, 15232, "15232-bit"), + (U15296, 15296, "15296-bit"), + (U15360, 15360, "15360-bit"), + (U15424, 15424, "15424-bit"), + (U15488, 15488, "15488-bit"), + (U15552, 15552, "15552-bit"), + (U15616, 15616, "15616-bit"), + (U15680, 15680, "15680-bit"), + (U15744, 15744, "15744-bit"), + (U15808, 15808, "15808-bit"), + (U15872, 15872, "15872-bit"), + (U15936, 15936, "15936-bit"), + (U16000, 16000, "16000-bit"), + (U16064, 16064, "16064-bit"), + (U16128, 16128, "16128-bit"), + (U16192, 16192, "16192-bit"), + (U16256, 16256, "16256-bit"), + (U16320, 16320, "16320-bit") +} + +impl_uint_concat_split_even! { + U8320, + U8448, + U8576, + U8704, + U8832, + U8960, + U9088, + U9216, + U9344, + U9472, + U9600, + U9728, + U9856, + U9984, + U10112, + U10240, + U10368, + U10496, + U10624, + U10752, + U10880, + U11008, + U11136, + U11264, + U11392, + U11520, + U11648, + U11776, + U11904, + U12032, + U12160, + U12288, + U12416, + U12544, + U12672, + U12800, + U12928, + U13056, + U13184, + U13312, + U13440, + U13568, + U13696, + U13824, + U13952, + U14080, + U14208, + U14336, + U14464, + U14592, + U14720, + U14848, + U14976, + U15104, + U15232, + U15360, + U15488, + U15616, + U15744, + U15872, + U16000, + U16128, + U16256, +} From 688676c46c69c04ce22079b2a6f71389712513af Mon Sep 17 00:00:00 2001 From: Fethbita Date: Wed, 19 Nov 2025 14:03:46 +0200 Subject: [PATCH 2/6] Remove unused import --- src/uint/extra_sizes_16k.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/uint/extra_sizes_16k.rs b/src/uint/extra_sizes_16k.rs index 8ed05746..af404c7a 100644 --- a/src/uint/extra_sizes_16k.rs +++ b/src/uint/extra_sizes_16k.rs @@ -6,7 +6,6 @@ // TODO(tarcieri): switch to a fully const generic implementation using `generic_const_exprs` use super::*; -use extra_sizes::*; impl_uint_aliases! { (U8256, 8256, "8256-bit"), From 0db60fdb551b500f3c55c7ad6c5518886fc1082a Mon Sep 17 00:00:00 2001 From: Fethbita Date: Thu, 20 Nov 2025 11:41:18 +0200 Subject: [PATCH 3/6] Revert "Remove unused import" This reverts commit 688676c46c69c04ce22079b2a6f71389712513af. --- src/uint/extra_sizes_16k.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/uint/extra_sizes_16k.rs b/src/uint/extra_sizes_16k.rs index af404c7a..8ed05746 100644 --- a/src/uint/extra_sizes_16k.rs +++ b/src/uint/extra_sizes_16k.rs @@ -6,6 +6,7 @@ // TODO(tarcieri): switch to a fully const generic implementation using `generic_const_exprs` use super::*; +use extra_sizes::*; impl_uint_aliases! { (U8256, 8256, "8256-bit"), From af2c203015f4a4aff0b8e223f0bf42e7f8c034f8 Mon Sep 17 00:00:00 2001 From: Fethbita Date: Thu, 20 Nov 2025 11:41:29 +0200 Subject: [PATCH 4/6] Revert "Add extra sizes from 8k to 16k that were missing under a new feature" This reverts commit 3ecf6b87f788c8ba3d30d80ca3700a7d8f7e355f. --- Cargo.toml | 1 - src/uint.rs | 5 - src/uint/extra_sizes_16k.rs | 205 ------------------------------------ 3 files changed, 211 deletions(-) delete mode 100644 src/uint/extra_sizes_16k.rs diff --git a/Cargo.toml b/Cargo.toml index 301e1610..ec4ad9cd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -44,7 +44,6 @@ default = ["rand"] alloc = ["serdect?/alloc"] extra-sizes = [] -extra-sizes-16k = ["extra-sizes"] rand = ["rand_core"] serde = ["dep:serdect"] diff --git a/src/uint.rs b/src/uint.rs index 3fa45d82..c27ae6a8 100644 --- a/src/uint.rs +++ b/src/uint.rs @@ -13,9 +13,6 @@ use zeroize::DefaultIsZeroes; #[cfg(feature = "extra-sizes")] pub use extra_sizes::*; -#[cfg(feature = "extra-sizes-16k")] -pub use extra_sizes_16k::*; - pub(crate) use ref_type::UintRef; use crate::{ @@ -532,8 +529,6 @@ impl_uint_concat_split_mixed! { #[cfg(feature = "extra-sizes")] mod extra_sizes; -#[cfg(feature = "extra-sizes-16k")] -mod extra_sizes_16k; mod mul_int; mod ref_type; diff --git a/src/uint/extra_sizes_16k.rs b/src/uint/extra_sizes_16k.rs deleted file mode 100644 index 8ed05746..00000000 --- a/src/uint/extra_sizes_16k.rs +++ /dev/null @@ -1,205 +0,0 @@ -//! Support for additional integer sizes beyond the core set which is defined -//! in the toplevel module. -//! -//! These are feature-gated to keep compile times down for applications which -//! do not need them. -// TODO(tarcieri): switch to a fully const generic implementation using `generic_const_exprs` - -use super::*; -use extra_sizes::*; - -impl_uint_aliases! { - (U8256, 8256, "8256-bit"), - (U8320, 8320, "8320-bit"), - (U8384, 8384, "8384-bit"), - (U8448, 8448, "8448-bit"), - (U8512, 8512, "8512-bit"), - (U8576, 8576, "8576-bit"), - (U8640, 8640, "8640-bit"), - (U8704, 8704, "8704-bit"), - (U8768, 8768, "8768-bit"), - (U8832, 8832, "8832-bit"), - (U8896, 8896, "8896-bit"), - (U8960, 8960, "8960-bit"), - (U9024, 9024, "9024-bit"), - (U9088, 9088, "9088-bit"), - (U9152, 9152, "9152-bit"), - (U9216, 9216, "9216-bit"), - (U9280, 9280, "9280-bit"), - (U9344, 9344, "9344-bit"), - (U9408, 9408, "9408-bit"), - (U9472, 9472, "9472-bit"), - (U9536, 9536, "9536-bit"), - (U9600, 9600, "9600-bit"), - (U9664, 9664, "9664-bit"), - (U9728, 9728, "9728-bit"), - (U9792, 9792, "9792-bit"), - (U9856, 9856, "9856-bit"), - (U9920, 9920, "9920-bit"), - (U9984, 9984, "9984-bit"), - (U10048, 10048, "10048-bit"), - (U10112, 10112, "10112-bit"), - (U10176, 10176, "10176-bit"), - (U10240, 10240, "10240-bit"), - (U10304, 10304, "10304-bit"), - (U10368, 10368, "10368-bit"), - (U10432, 10432, "10432-bit"), - (U10496, 10496, "10496-bit"), - (U10560, 10560, "10560-bit"), - (U10624, 10624, "10624-bit"), - (U10688, 10688, "10688-bit"), - (U10752, 10752, "10752-bit"), - (U10816, 10816, "10816-bit"), - (U10880, 10880, "10880-bit"), - (U10944, 10944, "10944-bit"), - (U11008, 11008, "11008-bit"), - (U11072, 11072, "11072-bit"), - (U11136, 11136, "11136-bit"), - (U11200, 11200, "11200-bit"), - (U11264, 11264, "11264-bit"), - (U11328, 11328, "11328-bit"), - (U11392, 11392, "11392-bit"), - (U11456, 11456, "11456-bit"), - (U11520, 11520, "11520-bit"), - (U11584, 11584, "11584-bit"), - (U11648, 11648, "11648-bit"), - (U11712, 11712, "11712-bit"), - (U11776, 11776, "11776-bit"), - (U11840, 11840, "11840-bit"), - (U11904, 11904, "11904-bit"), - (U11968, 11968, "11968-bit"), - (U12032, 12032, "12032-bit"), - (U12096, 12096, "12096-bit"), - (U12160, 12160, "12160-bit"), - (U12224, 12224, "12224-bit"), - (U12288, 12288, "12288-bit"), - (U12352, 12352, "12352-bit"), - (U12416, 12416, "12416-bit"), - (U12480, 12480, "12480-bit"), - (U12544, 12544, "12544-bit"), - (U12608, 12608, "12608-bit"), - (U12672, 12672, "12672-bit"), - (U12736, 12736, "12736-bit"), - (U12800, 12800, "12800-bit"), - (U12864, 12864, "12864-bit"), - (U12928, 12928, "12928-bit"), - (U12992, 12992, "12992-bit"), - (U13056, 13056, "13056-bit"), - (U13120, 13120, "13120-bit"), - (U13184, 13184, "13184-bit"), - (U13248, 13248, "13248-bit"), - (U13312, 13312, "13312-bit"), - (U13376, 13376, "13376-bit"), - (U13440, 13440, "13440-bit"), - (U13504, 13504, "13504-bit"), - (U13568, 13568, "13568-bit"), - (U13632, 13632, "13632-bit"), - (U13696, 13696, "13696-bit"), - (U13760, 13760, "13760-bit"), - (U13824, 13824, "13824-bit"), - (U13888, 13888, "13888-bit"), - (U13952, 13952, "13952-bit"), - (U14016, 14016, "14016-bit"), - (U14080, 14080, "14080-bit"), - (U14144, 14144, "14144-bit"), - (U14208, 14208, "14208-bit"), - (U14272, 14272, "14272-bit"), - (U14336, 14336, "14336-bit"), - (U14400, 14400, "14400-bit"), - (U14464, 14464, "14464-bit"), - (U14528, 14528, "14528-bit"), - (U14592, 14592, "14592-bit"), - (U14656, 14656, "14656-bit"), - (U14720, 14720, "14720-bit"), - (U14784, 14784, "14784-bit"), - (U14848, 14848, "14848-bit"), - (U14912, 14912, "14912-bit"), - (U14976, 14976, "14976-bit"), - (U15040, 15040, "15040-bit"), - (U15104, 15104, "15104-bit"), - (U15168, 15168, "15168-bit"), - (U15232, 15232, "15232-bit"), - (U15296, 15296, "15296-bit"), - (U15360, 15360, "15360-bit"), - (U15424, 15424, "15424-bit"), - (U15488, 15488, "15488-bit"), - (U15552, 15552, "15552-bit"), - (U15616, 15616, "15616-bit"), - (U15680, 15680, "15680-bit"), - (U15744, 15744, "15744-bit"), - (U15808, 15808, "15808-bit"), - (U15872, 15872, "15872-bit"), - (U15936, 15936, "15936-bit"), - (U16000, 16000, "16000-bit"), - (U16064, 16064, "16064-bit"), - (U16128, 16128, "16128-bit"), - (U16192, 16192, "16192-bit"), - (U16256, 16256, "16256-bit"), - (U16320, 16320, "16320-bit") -} - -impl_uint_concat_split_even! { - U8320, - U8448, - U8576, - U8704, - U8832, - U8960, - U9088, - U9216, - U9344, - U9472, - U9600, - U9728, - U9856, - U9984, - U10112, - U10240, - U10368, - U10496, - U10624, - U10752, - U10880, - U11008, - U11136, - U11264, - U11392, - U11520, - U11648, - U11776, - U11904, - U12032, - U12160, - U12288, - U12416, - U12544, - U12672, - U12800, - U12928, - U13056, - U13184, - U13312, - U13440, - U13568, - U13696, - U13824, - U13952, - U14080, - U14208, - U14336, - U14464, - U14592, - U14720, - U14848, - U14976, - U15104, - U15232, - U15360, - U15488, - U15616, - U15744, - U15872, - U16000, - U16128, - U16256, -} From ed669f61bb6f34f0eb23445f7591deebd3df163a Mon Sep 17 00:00:00 2001 From: Fethbita Date: Thu, 20 Nov 2025 11:46:06 +0200 Subject: [PATCH 5/6] Add U8320 and U12288 --- src/uint/extra_sizes.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/uint/extra_sizes.rs b/src/uint/extra_sizes.rs index fb639c71..40e495c2 100644 --- a/src/uint/extra_sizes.rs +++ b/src/uint/extra_sizes.rs @@ -108,7 +108,9 @@ impl_uint_aliases! { (U7936, 7936, "7936-bit"), (U8000, 8000, "8000-bit"), (U8064, 8064, "8064-bit"), - (U8128, 8128, "8128-bit") + (U8128, 8128, "8128-bit"), + (U8320, 8320, "8320-bit"), + (U12288, 12288, "12288-bit"), } impl_uint_concat_split_even! { @@ -157,4 +159,6 @@ impl_uint_concat_split_even! { U7808, U7936, U8064, + U8320, + U12288 } From 3c75f05bb16e4a39d8418ba772a27adb077abcb3 Mon Sep 17 00:00:00 2001 From: Fethbita Date: Thu, 20 Nov 2025 11:48:43 +0200 Subject: [PATCH 6/6] Fix macro errors --- src/uint/extra_sizes.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/uint/extra_sizes.rs b/src/uint/extra_sizes.rs index 40e495c2..d6ff5aa3 100644 --- a/src/uint/extra_sizes.rs +++ b/src/uint/extra_sizes.rs @@ -110,7 +110,7 @@ impl_uint_aliases! { (U8064, 8064, "8064-bit"), (U8128, 8128, "8128-bit"), (U8320, 8320, "8320-bit"), - (U12288, 12288, "12288-bit"), + (U12288, 12288, "12288-bit") } impl_uint_concat_split_even! { @@ -160,5 +160,5 @@ impl_uint_concat_split_even! { U7936, U8064, U8320, - U12288 + U12288, }