Skip to content

Commit 3446466

Browse files
committed
Use serdect
1 parent 50960c0 commit 3446466

File tree

4 files changed

+28
-17
lines changed

4 files changed

+28
-17
lines changed

Cargo.lock

Lines changed: 11 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ generic-array = { version = "0.14", optional = true }
2525
rand_core = { version = "0.6", optional = true }
2626
rlp = { version = "0.5", optional = true, default-features = false }
2727
serde_ = { version = "1", package = "serde", optional = true, default-features = false }
28-
serde-big-array = { version = "0.4", optional = true }
28+
serdect = { version = "0.1", optional = true, default-features = false }
2929
zeroize = { version = "1", optional = true, default-features = false }
3030

3131
[dev-dependencies]
@@ -41,7 +41,7 @@ rand_chacha = "0.3"
4141
default = ["rand"]
4242
alloc = []
4343
rand = ["rand_core/std"]
44-
serde = ["serde_", "serde-big-array"]
44+
serde = ["serde_", "serdect"]
4545

4646
[package.metadata.docs.rs]
4747
all-features = true

src/uint.rs

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,7 @@ use core::fmt;
3939
use subtle::{Choice, ConditionallySelectable};
4040

4141
#[cfg(feature = "serde")]
42-
use ::{
43-
serde::{Deserialize, Deserializer, Serialize, Serializer},
44-
serde_big_array::BigArray,
45-
};
42+
use serde::{Deserialize, Deserializer, Serialize, Serializer};
4643

4744
#[cfg(feature = "zeroize")]
4845
use zeroize::DefaultIsZeroes;
@@ -174,25 +171,32 @@ impl<const LIMBS: usize> fmt::UpperHex for UInt<LIMBS> {
174171

175172
#[cfg(feature = "serde")]
176173
#[cfg_attr(docsrs, doc(cfg(feature = "serde")))]
177-
impl<'de, const LIMBS: usize> Deserialize<'de> for UInt<LIMBS> {
174+
impl<'de, const LIMBS: usize> Deserialize<'de> for UInt<LIMBS>
175+
where
176+
UInt<LIMBS>: Encoding,
177+
{
178178
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
179179
where
180180
D: Deserializer<'de>,
181181
{
182-
Ok(Self {
183-
limbs: BigArray::deserialize(deserializer)?,
184-
})
182+
let mut buffer = Self::ZERO.to_le_bytes();
183+
serdect::array::deserialize_hex_or_bin(buffer.as_mut(), deserializer)?;
184+
185+
Ok(Self::from_le_bytes(buffer))
185186
}
186187
}
187188

188189
#[cfg(feature = "serde")]
189190
#[cfg_attr(docsrs, doc(cfg(feature = "serde")))]
190-
impl<'de, const LIMBS: usize> Serialize for UInt<LIMBS> {
191+
impl<'de, const LIMBS: usize> Serialize for UInt<LIMBS>
192+
where
193+
UInt<LIMBS>: Encoding,
194+
{
191195
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
192196
where
193197
S: Serializer,
194198
{
195-
BigArray::serialize(&self.limbs, serializer)
199+
serdect::array::serialize_hex_lower_or_bin(&Encoding::to_le_bytes(self), serializer)
196200
}
197201
}
198202

src/uint/macros.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ macro_rules! impl_uint_aliases {
2020
}
2121

2222
fn from_le_bytes(bytes: Self::Repr) -> Self {
23-
Self::from_be_slice(&bytes)
23+
Self::from_le_slice(&bytes)
2424
}
2525

2626
#[inline]

0 commit comments

Comments
 (0)