1#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4pub struct Point {
5 #[prost(float, tag = "1")]
6 pub lng: f32,
7 #[prost(float, tag = "2")]
8 pub lat: f32,
9}
10#[derive(Clone, PartialEq, ::prost::Message)]
41pub struct Polygon {
42 #[prost(message, repeated, tag = "1")]
44 pub points: ::prost::alloc::vec::Vec<Point>,
45 #[prost(message, repeated, tag = "2")]
47 pub holes: ::prost::alloc::vec::Vec<Polygon>,
48}
49#[derive(Clone, PartialEq, ::prost::Message)]
51pub struct Timezone {
52 #[prost(message, repeated, tag = "1")]
53 pub polygons: ::prost::alloc::vec::Vec<Polygon>,
54 #[prost(string, tag = "2")]
55 pub name: ::prost::alloc::string::String,
56}
57#[derive(Clone, PartialEq, ::prost::Message)]
58pub struct Timezones {
59 #[prost(message, repeated, tag = "1")]
60 pub timezones: ::prost::alloc::vec::Vec<Timezone>,
61 #[prost(bool, tag = "2")]
63 pub reduced: bool,
64 #[prost(string, tag = "3")]
65 pub version: ::prost::alloc::string::String,
66}
67#[derive(Clone, PartialEq, ::prost::Message)]
68pub struct CompressedPolygon {
69 #[prost(bytes = "vec", tag = "1")]
70 pub points: ::prost::alloc::vec::Vec<u8>,
71 #[prost(message, repeated, tag = "2")]
72 pub holes: ::prost::alloc::vec::Vec<CompressedPolygon>,
73}
74#[derive(Clone, PartialEq, ::prost::Message)]
76pub struct CompressedTimezone {
77 #[prost(message, repeated, tag = "1")]
78 pub data: ::prost::alloc::vec::Vec<CompressedPolygon>,
79 #[prost(string, tag = "2")]
80 pub name: ::prost::alloc::string::String,
81}
82#[derive(Clone, PartialEq, ::prost::Message)]
83pub struct CompressedTimezones {
84 #[prost(enumeration = "CompressMethod", tag = "1")]
85 pub method: i32,
86 #[prost(message, repeated, tag = "2")]
87 pub timezones: ::prost::alloc::vec::Vec<CompressedTimezone>,
88 #[prost(string, tag = "3")]
89 pub version: ::prost::alloc::string::String,
90}
91#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
95pub struct PreindexTimezone {
96 #[prost(string, tag = "1")]
97 pub name: ::prost::alloc::string::String,
98 #[prost(int32, tag = "2")]
99 pub x: i32,
100 #[prost(int32, tag = "3")]
101 pub y: i32,
102 #[prost(int32, tag = "4")]
103 pub z: i32,
104}
105#[derive(Clone, PartialEq, ::prost::Message)]
107pub struct PreindexTimezones {
108 #[prost(int32, tag = "1")]
110 pub idx_zoom: i32,
111 #[prost(int32, tag = "2")]
113 pub agg_zoom: i32,
114 #[prost(message, repeated, tag = "3")]
115 pub keys: ::prost::alloc::vec::Vec<PreindexTimezone>,
116 #[prost(string, tag = "4")]
117 pub version: ::prost::alloc::string::String,
118}
119#[derive(Clone, PartialEq, ::prost::Message)]
122pub struct InlinePoints {
123 #[prost(message, repeated, tag = "1")]
124 pub points: ::prost::alloc::vec::Vec<Point>,
125}
126#[derive(Clone, PartialEq, ::prost::Message)]
131pub struct RingSegment {
132 #[prost(oneof = "ring_segment::Content", tags = "1, 2, 3")]
133 pub content: ::core::option::Option<ring_segment::Content>,
134}
135pub mod ring_segment {
137 #[derive(Clone, PartialEq, ::prost::Oneof)]
138 pub enum Content {
139 #[prost(message, tag = "1")]
140 Inline(super::InlinePoints),
141 #[prost(int32, tag = "2")]
143 EdgeForward(i32),
144 #[prost(int32, tag = "3")]
146 EdgeReversed(i32),
147 }
148}
149#[derive(Clone, PartialEq, ::prost::Message)]
153pub struct TopoPolygon {
154 #[prost(message, repeated, tag = "1")]
155 pub exterior: ::prost::alloc::vec::Vec<RingSegment>,
156 #[prost(message, repeated, tag = "2")]
157 pub holes: ::prost::alloc::vec::Vec<TopoPolygon>,
158}
159#[derive(Clone, PartialEq, ::prost::Message)]
161pub struct TopoTimezone {
162 #[prost(message, repeated, tag = "1")]
163 pub polygons: ::prost::alloc::vec::Vec<TopoPolygon>,
164 #[prost(string, tag = "2")]
165 pub name: ::prost::alloc::string::String,
166}
167#[derive(Clone, PartialEq, ::prost::Message)]
171pub struct SharedEdge {
172 #[prost(int32, tag = "1")]
173 pub id: i32,
174 #[prost(message, repeated, tag = "2")]
175 pub points: ::prost::alloc::vec::Vec<Point>,
176}
177#[derive(Clone, PartialEq, ::prost::Message)]
183pub struct TopoTimezones {
184 #[prost(message, repeated, tag = "1")]
185 pub shared_edges: ::prost::alloc::vec::Vec<SharedEdge>,
186 #[prost(message, repeated, tag = "2")]
187 pub timezones: ::prost::alloc::vec::Vec<TopoTimezone>,
188 #[prost(string, tag = "3")]
189 pub version: ::prost::alloc::string::String,
190}
191#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
194pub struct CompressedSharedEdge {
195 #[prost(int32, tag = "1")]
196 pub id: i32,
197 #[prost(bytes = "vec", tag = "2")]
199 pub points: ::prost::alloc::vec::Vec<u8>,
200}
201#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
203pub struct CompressedInlinePoints {
204 #[prost(bytes = "vec", tag = "1")]
206 pub points: ::prost::alloc::vec::Vec<u8>,
207}
208#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
210pub struct CompressedRingSegment {
211 #[prost(oneof = "compressed_ring_segment::Content", tags = "1, 2, 3")]
212 pub content: ::core::option::Option<compressed_ring_segment::Content>,
213}
214pub mod compressed_ring_segment {
216 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
217 pub enum Content {
218 #[prost(message, tag = "1")]
219 Inline(super::CompressedInlinePoints),
220 #[prost(int32, tag = "2")]
221 EdgeForward(i32),
222 #[prost(int32, tag = "3")]
223 EdgeReversed(i32),
224 }
225}
226#[derive(Clone, PartialEq, ::prost::Message)]
228pub struct CompressedTopoPolygon {
229 #[prost(message, repeated, tag = "1")]
230 pub exterior: ::prost::alloc::vec::Vec<CompressedRingSegment>,
231 #[prost(message, repeated, tag = "2")]
232 pub holes: ::prost::alloc::vec::Vec<CompressedTopoPolygon>,
233}
234#[derive(Clone, PartialEq, ::prost::Message)]
236pub struct CompressedTopoTimezone {
237 #[prost(message, repeated, tag = "1")]
238 pub polygons: ::prost::alloc::vec::Vec<CompressedTopoPolygon>,
239 #[prost(string, tag = "2")]
240 pub name: ::prost::alloc::string::String,
241}
242#[derive(Clone, PartialEq, ::prost::Message)]
249pub struct CompressedTopoTimezones {
250 #[prost(enumeration = "CompressMethod", tag = "1")]
251 pub method: i32,
252 #[prost(message, repeated, tag = "2")]
253 pub shared_edges: ::prost::alloc::vec::Vec<CompressedSharedEdge>,
254 #[prost(message, repeated, tag = "3")]
255 pub timezones: ::prost::alloc::vec::Vec<CompressedTopoTimezone>,
256 #[prost(string, tag = "4")]
257 pub version: ::prost::alloc::string::String,
258 #[prost(message, optional, tag = "5")]
259 pub grid_index: ::core::option::Option<GridIndex>,
260}
261#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
265pub struct GridIndexCell {
266 #[prost(sint32, tag = "1")]
268 pub lng: i32,
269 #[prost(sint32, tag = "2")]
271 pub lat: i32,
272 #[prost(uint32, repeated, tag = "3")]
273 pub tz_indices: ::prost::alloc::vec::Vec<u32>,
274}
275#[derive(Clone, PartialEq, ::prost::Message)]
278pub struct GridIndex {
279 #[prost(message, repeated, tag = "1")]
280 pub cells: ::prost::alloc::vec::Vec<GridIndexCell>,
281 #[prost(string, tag = "2")]
282 pub version: ::prost::alloc::string::String,
283}
284#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
285#[repr(i32)]
286pub enum CompressMethod {
287 Unspecified = 0,
288 Polyline = 1,
290}
291impl CompressMethod {
292 pub fn as_str_name(&self) -> &'static str {
297 match self {
298 Self::Unspecified => "COMPRESS_METHOD_UNSPECIFIED",
299 Self::Polyline => "COMPRESS_METHOD_POLYLINE",
300 }
301 }
302 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
304 match value {
305 "COMPRESS_METHOD_UNSPECIFIED" => Some(Self::Unspecified),
306 "COMPRESS_METHOD_POLYLINE" => Some(Self::Polyline),
307 _ => None,
308 }
309 }
310}