diff --git a/Cargo.lock b/Cargo.lock index 87ebd4c..f57b0ce 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -34,7 +34,7 @@ checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "s2json" -version = "1.4.0" +version = "1.5.0" dependencies = [ "serde", "serde_json", diff --git a/Cargo.toml b/Cargo.toml index 789161c..ab8e946 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "s2json" -version = "1.4.0" +version = "1.5.0" edition = "2021" authors = ["Craig O'Connor "] description = "This library supports the S2JSON 1.0 Specification" diff --git a/rust/geometry.rs b/rust/geometry.rs index 3bf4ed8..d348d09 100644 --- a/rust/geometry.rs +++ b/rust/geometry.rs @@ -168,7 +168,7 @@ where } /// BBox or BBox3D -#[derive(Serialize, Deserialize, Debug, PartialEq)] +#[derive(Serialize, Deserialize, Copy, Clone, Debug, PartialEq)] pub enum BBOX { /// 2D bounding box BBox(BBox), @@ -202,7 +202,7 @@ pub type Polygon3D = Vec>; pub type MultiPolygon3D = Vec; /// All possible geometry shapes -#[derive(Serialize, Deserialize, Debug, PartialEq)] +#[derive(Clone, Serialize, Deserialize, Debug, PartialEq)] pub enum Geometry { /// Point Shape Point(PointGeometry), @@ -231,7 +231,7 @@ pub enum Geometry { } /// BaseGeometry is the a generic geometry type -#[derive(Serialize, Deserialize, Debug, PartialEq)] +#[derive(Serialize, Deserialize, Copy, Clone, Debug, PartialEq)] pub struct BaseGeometry { /// The geometry shape pub coordinates: G, diff --git a/rust/lib.rs b/rust/lib.rs index 6bf6dbc..c6acada 100644 --- a/rust/lib.rs +++ b/rust/lib.rs @@ -60,7 +60,7 @@ impl From for Face { //? FeatureCollections /// WG FeatureCollection -#[derive(Serialize, Deserialize, Debug, PartialEq)] +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct FeatureCollection { /// Collection of WG features pub features: Vec, @@ -73,7 +73,7 @@ pub struct FeatureCollection { } /// S2 FeatureCollection -#[derive(Serialize, Deserialize, Debug, PartialEq)] +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct S2FeatureCollection { /// Collection of S2 features pub features: Vec, @@ -88,7 +88,7 @@ pub struct S2FeatureCollection { //? Features /// Component to build either an S2 or WG Feature -#[derive(Serialize, Deserialize, Debug, PartialEq)] +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct Feature { /// Unique identifier pub id: Option, @@ -102,7 +102,7 @@ pub struct Feature { } /// Component to build either an S2 or WG Feature -#[derive(Serialize, Deserialize, Debug, PartialEq)] +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct S2Feature { /// Unique identifier #[serde(skip_serializing_if = "Option::is_none")] @@ -126,7 +126,7 @@ pub struct S2Feature { pub type Attributions = BTreeMap; /// Either an S2 or WG FeatureCollection -#[derive(Serialize, Deserialize, Debug, PartialEq)] +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] #[serde(untagged)] pub enum FeatureCollections { /// An WG FeatureCollection @@ -136,7 +136,7 @@ pub enum FeatureCollections { } /// Either an S2 or WG Feature -#[derive(Serialize, Deserialize, Debug, PartialEq)] +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] #[serde(untagged)] pub enum Features { /// An WG Feature @@ -146,7 +146,7 @@ pub enum Features { } /// All major S2JSON types -#[derive(Serialize, Deserialize, Debug, PartialEq)] +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] #[serde(untagged)] pub enum JSONCollection { /// An WG FeatureCollection