serde_avro_bytes/avro_bytes/ser/
bytes.rs1use serde::{Serialize, Serializer};
2
3pub struct Bytes<'a>(pub(crate) &'a [u8]);
4
5impl Serialize for Bytes<'_> {
6 fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7 serializer.serialize_bytes(self.0)
8 }
9}
10
11pub fn serialize_bytes<S: Serializer>(
12 v: impl AsRef<[u8]>,
13 serializer: S,
14) -> Result<S::Ok, S::Error> {
15 serializer.serialize_bytes(v.as_ref())
16}
17
18pub fn serialize_option_bytes<S: Serializer, T: AsRef<[u8]>>(
19 v: &Option<T>,
20 serializer: S,
21) -> Result<S::Ok, S::Error> {
22 match v {
23 None => serializer.serialize_none(),
24 Some(bytes) => serializer.serialize_some(&Bytes(bytes.as_ref())),
25 }
26}