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}