pub fn serialize_optional_geometry<'a, IG, S>(
geometry: &'a Option<IG>,
ser: S,
) -> Result<S::Ok, S::Error>
Expand description
serde::serialize_with
helper to serialize an optional type like a
geo_types
, as an optional GeoJSON Geometry.
ยงExamples
use geojson::ser::serialize_optional_geometry;
use serde::Serialize;
use serde_json::{json, to_value};
#[derive(Serialize)]
struct MyStruct {
count: usize,
#[serde(
skip_serializing_if = "Option::is_none",
serialize_with = "serialize_optional_geometry"
)]
geometry: Option<geo_types::Point<f64>>,
}
let my_struct = MyStruct {
count: 0,
geometry: Some(geo_types::Point::new(1.2, 0.5)),
};
let json = json! {{
"count": 0,
"geometry": {
"type": "Point",
"coordinates": [1.2, 0.5]
},
}};
assert_eq!(json, to_value(my_struct).unwrap());
let my_struct = MyStruct {
count: 1,
geometry: None,
};
let json = json! {{
"count": 1,
}};
assert_eq!(json, to_value(my_struct).unwrap());