mirror of
https://github.com/vacp2p/semaphore-rs.git
synced 2025-02-23 09:08:28 +00:00
Test serializer
This commit is contained in:
parent
347c6bcaf9
commit
047c0a1f91
@ -54,9 +54,8 @@ zkp-u256 = { version = "0.2", optional = true } # TODO: Remove
|
||||
ethers-core = { git = "https://github.com/gakonst/ethers-rs", default-features = false }
|
||||
|
||||
[dev-dependencies]
|
||||
pretty_assertions = "1.0"
|
||||
rand_chacha = "0.3.1"
|
||||
rand_core = "0.6.3"
|
||||
bincode = "1.3.3"
|
||||
proptest = "1.0"
|
||||
serde_json = "1.0.79"
|
||||
tempfile = "3.0"
|
||||
tiny-keccak = "2.0.2"
|
||||
|
29
src/util.rs
29
src/util.rs
@ -56,6 +56,7 @@ fn trim_hex_prefix(str: &str) -> &str {
|
||||
}
|
||||
}
|
||||
|
||||
/// Helper to deserialize byte arrays.
|
||||
pub(crate) fn deserialize_bytes<'de, const N: usize, D: Deserializer<'de>>(
|
||||
deserializer: D,
|
||||
) -> Result<[u8; N], D::Error> {
|
||||
@ -100,3 +101,31 @@ pub(crate) fn deserialize_bytes<'de, const N: usize, D: Deserializer<'de>>(
|
||||
deserializer.deserialize_bytes(ByteVisitor)
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn test_serialize_bytes_hex() {
|
||||
let bytes = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
|
||||
let mut ser = serde_json::Serializer::new(Vec::new());
|
||||
serialize_bytes::<16, 34, _>(&mut ser, &bytes).unwrap();
|
||||
let json = ser.into_inner();
|
||||
assert_eq!(json, b"\"0x0102030405060708090a0b0c0d0e0f10\"");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_serialize_bytes_bin() {
|
||||
let bytes = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
|
||||
let mut bin: Vec<u8> = Vec::new();
|
||||
{
|
||||
let mut ser = bincode::Serializer::new(&mut bin, bincode::options());
|
||||
serialize_bytes::<16, 34, _>(&mut ser, &bytes).unwrap();
|
||||
}
|
||||
// Bincode appears to prefix with a length.
|
||||
assert_eq!(bin, [
|
||||
16, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user