serde_types/about_vector/ser.rs
1use serde::{Serialize, Serializer};
2
3use crate::OneOrMany;
4
5impl<T> Serialize for OneOrMany<T>
6where
7 T: Serialize,
8{
9 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
10 where
11 S: Serializer,
12 {
13 match self.inner.len() {
14 1 => unsafe { T::serialize(self.inner.first().unwrap_unchecked(), serializer) },
15 _ => Vec::<T>::serialize(&self.inner, serializer),
16 }
17 }
18}