pub fn serialize<T, S>(value: &T, serializer: S) -> Result<S::Ok, S::Error> where
    T: Serialize,
    S: Serializer