pub fn deserialize<'d, T: DeserializeOwned, D: Deserializer<'d>>(
    d: D
) -> Result<T, D::Error>