pub fn deserialize_optional_geometry<'de, D, G>(
deserializer: D,
) -> Result<Option<G>, D::Error>
Expand description
serde::deserialize_with
helper to deserialize an optional GeoJSON Geometry into another type,
like an optional geo_types
Geometry.
ยงExamples
use geojson::de::deserialize_optional_geometry;
use serde::Deserialize;
use serde_json::{json, from_value};
#[derive(Deserialize)]
struct MyStruct {
#[serde(rename = "count")]
_count: usize,
#[serde(default, deserialize_with = "deserialize_optional_geometry")]
geometry: Option<geo_types::Point<f64>>,
}
let json = json! {{
"count": 0,
"geometry": {
"type": "Point",
"coordinates": [125.6, 10.1]
},
}};
let feature: MyStruct = from_value(json).unwrap();
assert!(feature.geometry.is_some());
let json = json! {{
"count": 1,
}};
let feature: MyStruct = from_value(json).unwrap();
assert!(feature.geometry.is_none())