mirror of
https://github.com/logos-messaging/logos-messaging-rust-bindings.git
synced 2026-01-07 08:23:08 +00:00
messagehash directly derive from Deserialize
This commit is contained in:
parent
566fae9dac
commit
6541dc34b8
@ -1,6 +1,6 @@
|
|||||||
use crate::general::waku_decode::WakuDecode;
|
use crate::general::waku_decode::WakuDecode;
|
||||||
use hex::FromHex;
|
use hex::FromHex;
|
||||||
use serde::{Deserialize, Deserializer, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use std::convert::TryInto;
|
use std::convert::TryInto;
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
use std::fmt::Write;
|
use std::fmt::Write;
|
||||||
@ -8,7 +8,7 @@ use std::hash::Hash;
|
|||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
|
|
||||||
/// Waku message hash, hex encoded sha256 digest of the message
|
/// Waku message hash, hex encoded sha256 digest of the message
|
||||||
#[derive(Debug, Serialize, PartialEq, Eq, Clone, Hash)]
|
#[derive(Debug, Deserialize, Serialize, PartialEq, Eq, Clone, Hash)]
|
||||||
pub struct MessageHash([u8; 32]);
|
pub struct MessageHash([u8; 32]);
|
||||||
|
|
||||||
impl MessageHash {
|
impl MessageHash {
|
||||||
@ -38,23 +38,6 @@ impl FromStr for MessageHash {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'de> Deserialize<'de> for MessageHash {
|
|
||||||
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
||||||
where
|
|
||||||
D: Deserializer<'de>,
|
|
||||||
{
|
|
||||||
// Deserialize the input as a vector of u8
|
|
||||||
let vec: Vec<u8> = Deserialize::deserialize(deserializer)?;
|
|
||||||
|
|
||||||
// Ensure the vector has exactly 32 elements
|
|
||||||
let array: [u8; 32] = vec
|
|
||||||
.try_into()
|
|
||||||
.map_err(|_| serde::de::Error::custom("Expected an array of length 32"))?;
|
|
||||||
|
|
||||||
Ok(MessageHash(array))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl WakuDecode for MessageHash {
|
impl WakuDecode for MessageHash {
|
||||||
fn decode(input: &str) -> Result<Self, String> {
|
fn decode(input: &str) -> Result<Self, String> {
|
||||||
MessageHash::from_str(input)
|
MessageHash::from_str(input)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user