1use serde::{Deserialize, Serialize};
3
4pub trait GeometryType {
7 type Type;
15
16 type Space;
26}
27
28#[derive(
30 Debug, Copy, Clone, Default, PartialEq, PartialOrd, Eq, Ord, Hash, Deserialize, Serialize,
31)]
32pub struct PointGeometryType;
33
34#[derive(
36 Debug, Copy, Clone, Default, PartialEq, PartialOrd, Eq, Ord, Hash, Deserialize, Serialize,
37)]
38pub struct MultiPointGeometryType;
39
40#[derive(
42 Debug, Copy, Clone, Default, PartialEq, PartialOrd, Eq, Ord, Hash, Deserialize, Serialize,
43)]
44pub struct ContourGeometryType;
45
46#[derive(
48 Debug, Copy, Clone, Default, PartialEq, PartialOrd, Eq, Ord, Hash, Deserialize, Serialize,
49)]
50pub struct MultiContourGeometryType;
51
52#[derive(
54 Debug, Copy, Clone, Default, PartialEq, PartialOrd, Eq, Ord, Hash, Deserialize, Serialize,
55)]
56pub struct PolygonGeometryType;
57
58#[derive(
60 Debug, Copy, Clone, Default, PartialEq, PartialOrd, Eq, Ord, Hash, Deserialize, Serialize,
61)]
62pub struct MultiPolygonGeometryType;
63
64#[derive(
66 Debug, Copy, Clone, Default, PartialEq, PartialOrd, Eq, Ord, Hash, Deserialize, Serialize,
67)]
68pub struct GeoSpace2d;
69
70#[derive(
72 Debug, Copy, Clone, Default, PartialEq, PartialOrd, Eq, Ord, Hash, Deserialize, Serialize,
73)]
74pub struct CartesianSpace2d;
75
76#[derive(
78 Debug, Copy, Clone, Default, PartialEq, PartialOrd, Eq, Ord, Hash, Deserialize, Serialize,
79)]
80pub struct CartesianSpace3d;
81
82#[derive(
84 Debug, Copy, Clone, Default, PartialEq, PartialOrd, Eq, Ord, Hash, Deserialize, Serialize,
85)]
86pub struct AmbiguousSpace;