Files
Stalwart/crates/jmap-proto/src/response/serialize.rs
2025-09-24 18:14:44 +02:00

30 lines
791 B
Rust

/*
* SPDX-FileCopyrightText: 2020 Stalwart Labs LLC <hello@stalw.art>
*
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-SEL
*/
use super::ResponseMethod;
use crate::request::Call;
use serde::{Serialize, ser::SerializeSeq};
impl Serialize for Call<ResponseMethod<'_>> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
let mut seq = serializer.serialize_seq(3.into())?;
seq.serialize_element(&self.name.to_string())?;
seq.serialize_element(&self.method)?;
seq.serialize_element(&self.id)?;
seq.end()
}
}
pub fn serialize_hex<S>(value: &u32, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
format!("{:x}", value).serialize(serializer)
}