pub fn serialize<T: ToString + Serialize, S>(
    val: T,
    serializer: S
) -> Result<S::Ok, S::Error> where
    S: Serializer