Skip to content

Commit 49ddb1c

Browse files
committed
Merge #184: Add Default trait to Fe32 (derived)
704e891 Add Default trait to Fe32 (derived) (optout) Pull request description: See #187 . Add derived `Default` trait to `Fe32`, ~~and `ZERO` constant~~. Default is trivial to add, but it is useful in some cases. ACKs for top commit: tcharding: ACK 704e891 apoelstra: ACK 704e891 clarkmoody: ACK 704e891 Tree-SHA512: 2d6385f92974d893c2e79d68712e85354ada8faa53ed30896e53f240a2e0272bc700c7559b531efeff22550ef6d58fc2ca5e4ed32df4ea4decd97c2b4f18d90f
2 parents 45bb227 + 704e891 commit 49ddb1c

File tree

4 files changed

+13
-1
lines changed

4 files changed

+13
-1
lines changed

api/all-features.txt

+2
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,7 @@ impl core::convert::TryFrom<u16> for bech32::primitives::gf32::Fe32
144144
impl core::convert::TryFrom<u32> for bech32::primitives::gf32::Fe32
145145
impl core::convert::TryFrom<u64> for bech32::primitives::gf32::Fe32
146146
impl core::convert::TryFrom<u8> for bech32::primitives::gf32::Fe32
147+
impl core::default::Default for bech32::primitives::gf32::Fe32
147148
impl core::error::Error for bech32::DecodeError
148149
impl core::error::Error for bech32::EncodeError
149150
impl core::error::Error for bech32::EncodeIoError
@@ -1009,6 +1010,7 @@ pub fn bech32::primitives::gf32::Fe32::add_assign(&mut self, other: &bech32::pri
10091010
pub fn bech32::primitives::gf32::Fe32::add_assign(&mut self, other: bech32::primitives::gf32::Fe32)
10101011
pub fn bech32::primitives::gf32::Fe32::as_ref(&self) -> &u8
10111012
pub fn bech32::primitives::gf32::Fe32::clone(&self) -> bech32::primitives::gf32::Fe32
1013+
pub fn bech32::primitives::gf32::Fe32::default() -> bech32::primitives::gf32::Fe32
10121014
pub fn bech32::primitives::gf32::Fe32::div(self, other: &bech32::primitives::gf32::Fe32) -> bech32::primitives::gf32::Fe32
10131015
pub fn bech32::primitives::gf32::Fe32::div(self, other: bech32::primitives::gf32::Fe32) -> bech32::primitives::gf32::Fe32
10141016
pub fn bech32::primitives::gf32::Fe32::div_assign(&mut self, other: &bech32::primitives::gf32::Fe32)

api/alloc-only.txt

+2
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ impl core::convert::TryFrom<u16> for bech32::primitives::gf32::Fe32
139139
impl core::convert::TryFrom<u32> for bech32::primitives::gf32::Fe32
140140
impl core::convert::TryFrom<u64> for bech32::primitives::gf32::Fe32
141141
impl core::convert::TryFrom<u8> for bech32::primitives::gf32::Fe32
142+
impl core::default::Default for bech32::primitives::gf32::Fe32
142143
impl core::fmt::Debug for bech32::DecodeError
143144
impl core::fmt::Debug for bech32::EncodeError
144145
impl core::fmt::Debug for bech32::primitives::checksum::PackedNull
@@ -961,6 +962,7 @@ pub fn bech32::primitives::gf32::Fe32::add_assign(&mut self, other: &bech32::pri
961962
pub fn bech32::primitives::gf32::Fe32::add_assign(&mut self, other: bech32::primitives::gf32::Fe32)
962963
pub fn bech32::primitives::gf32::Fe32::as_ref(&self) -> &u8
963964
pub fn bech32::primitives::gf32::Fe32::clone(&self) -> bech32::primitives::gf32::Fe32
965+
pub fn bech32::primitives::gf32::Fe32::default() -> bech32::primitives::gf32::Fe32
964966
pub fn bech32::primitives::gf32::Fe32::div(self, other: &bech32::primitives::gf32::Fe32) -> bech32::primitives::gf32::Fe32
965967
pub fn bech32::primitives::gf32::Fe32::div(self, other: bech32::primitives::gf32::Fe32) -> bech32::primitives::gf32::Fe32
966968
pub fn bech32::primitives::gf32::Fe32::div_assign(&mut self, other: &bech32::primitives::gf32::Fe32)

api/no-features.txt

+2
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ impl core::convert::TryFrom<u16> for bech32::primitives::gf32::Fe32
121121
impl core::convert::TryFrom<u32> for bech32::primitives::gf32::Fe32
122122
impl core::convert::TryFrom<u64> for bech32::primitives::gf32::Fe32
123123
impl core::convert::TryFrom<u8> for bech32::primitives::gf32::Fe32
124+
impl core::default::Default for bech32::primitives::gf32::Fe32
124125
impl core::fmt::Debug for bech32::EncodeError
125126
impl core::fmt::Debug for bech32::primitives::checksum::PackedNull
126127
impl core::fmt::Debug for bech32::primitives::decode::CharError
@@ -892,6 +893,7 @@ pub fn bech32::primitives::gf32::Fe32::add_assign(&mut self, other: &bech32::pri
892893
pub fn bech32::primitives::gf32::Fe32::add_assign(&mut self, other: bech32::primitives::gf32::Fe32)
893894
pub fn bech32::primitives::gf32::Fe32::as_ref(&self) -> &u8
894895
pub fn bech32::primitives::gf32::Fe32::clone(&self) -> bech32::primitives::gf32::Fe32
896+
pub fn bech32::primitives::gf32::Fe32::default() -> bech32::primitives::gf32::Fe32
895897
pub fn bech32::primitives::gf32::Fe32::div(self, other: &bech32::primitives::gf32::Fe32) -> bech32::primitives::gf32::Fe32
896898
pub fn bech32::primitives::gf32::Fe32::div(self, other: bech32::primitives::gf32::Fe32) -> bech32::primitives::gf32::Fe32
897899
pub fn bech32::primitives::gf32::Fe32::div_assign(&mut self, other: &bech32::primitives::gf32::Fe32)

src/primitives/gf32.rs

+7-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ const CHARS_INV: [i8; 128] = [
6666
];
6767

6868
/// An element in GF(32), the finite field containing elements `[0,31]` inclusive.
69-
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
69+
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash)]
7070
#[repr(transparent)]
7171
pub struct Fe32(pub(crate) u8);
7272

@@ -487,6 +487,12 @@ mod tests {
487487
assert_eq!(fe * Fe32::P, fe) // Fe32::P == Fe32(1)
488488
}
489489
}
490+
491+
#[test]
492+
fn default() {
493+
assert_eq!(Fe32::default().to_u8(), 0);
494+
assert_eq!(Fe32::default(), Fe32::Q);
495+
}
490496
}
491497

492498
#[cfg(kani)]

0 commit comments

Comments
 (0)