mirror of
https://github.com/logos-messaging/logos-messaging-rust-bindings.git
synced 2026-01-02 14:03:12 +00:00
Payload as base64
This commit is contained in:
parent
530ea8fb5e
commit
8d3fb9f2ff
1
Cargo.lock
generated
1
Cargo.lock
generated
@ -977,6 +977,7 @@ name = "waku"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"aes-gcm",
|
||||
"base64",
|
||||
"hex",
|
||||
"libsecp256k1",
|
||||
"multiaddr",
|
||||
|
||||
@ -7,6 +7,7 @@ edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
aes-gcm = { version = "0.10", features = ["aes"] }
|
||||
base64 = "0.13"
|
||||
hex = "0.4"
|
||||
libsecp256k1 = "0.7"
|
||||
multiaddr = "0.14"
|
||||
|
||||
@ -45,6 +45,7 @@ impl<T> From<JsonResponse<T>> for Result<T> {
|
||||
#[derive(Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct WakuMessage {
|
||||
#[serde(with = "base64_serde")]
|
||||
payload: Vec<u8>,
|
||||
/// The content topic to be set on the message
|
||||
content_topic: WakuContentTopic,
|
||||
@ -398,3 +399,23 @@ impl<'de> Deserialize<'de> for WakuPubSubTopic {
|
||||
.map_err(D::Error::custom)
|
||||
}
|
||||
}
|
||||
|
||||
mod base64_serde {
|
||||
use serde::de::Error;
|
||||
use serde::{Deserialize, Deserializer, Serialize, Serializer};
|
||||
|
||||
pub fn serialize<S>(value: &[u8], serializer: S) -> std::result::Result<S::Ok, S::Error>
|
||||
where
|
||||
S: Serializer,
|
||||
{
|
||||
base64::encode(value).serialize(serializer)
|
||||
}
|
||||
|
||||
pub fn deserialize<'de, D>(deserializer: D) -> std::result::Result<Vec<u8>, D::Error>
|
||||
where
|
||||
D: Deserializer<'de>,
|
||||
{
|
||||
let base64_str: String = String::deserialize(deserializer)?;
|
||||
base64::decode(base64_str).map_err(D::Error::custom)
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user