pub fn to_feature<T>(value: T) -> Result<Feature>where
T: Serialize,Expand description
Convert a T into a Feature.
This is analogous to serde_json::to_value
Note that if (and only if) T has a field named geometry, it will be serialized to
feature.geometry.
All other fields will be serialized to feature.properties.
§Examples
use serde::Serialize;
use geojson::{Feature, Value, Geometry};
use geojson::ser::{to_feature, serialize_geometry};
#[derive(Serialize)]
struct MyStruct {
// Serialize `geometry` as geojson, rather than using the type's default serialization
#[serde(serialize_with = "serialize_geometry")]
geometry: geo_types::Point,
name: String,
}
let my_struct = MyStruct {
geometry: geo_types::Point::new(1.0, 2.0),
name: "My Name".to_string()
};
let feature: Feature = to_feature(my_struct).unwrap();
assert_eq!("My Name", feature.properties.unwrap()["name"]);
assert_eq!(feature.geometry.unwrap(), Geometry::new(Value::Point(vec![1.0, 2.0])));§Errors
Serialization can fail if T’s implementation of Serialize decides to
fail, or if T contains a map with non-string keys.