1 // automatically generated by the FlatBuffers compiler, do not modify
2 
3 
4 #ifndef FLATBUFFERS_GENERATED_FBRESULT_OSRM_ENGINE_API_FBRESULT_H_
5 #define FLATBUFFERS_GENERATED_FBRESULT_OSRM_ENGINE_API_FBRESULT_H_
6 
7 #include "flatbuffers/flatbuffers.h"
8 
9 namespace osrm {
10 namespace engine {
11 namespace api {
12 namespace fbresult {
13 
14 struct Position;
15 
16 struct Uint64Pair;
17 
18 struct Waypoint;
19 struct WaypointT;
20 
21 struct Metadata;
22 struct MetadataT;
23 
24 struct Annotation;
25 struct AnnotationT;
26 
27 struct StepManeuver;
28 struct StepManeuverT;
29 
30 struct Lane;
31 struct LaneT;
32 
33 struct Intersection;
34 struct IntersectionT;
35 
36 struct Step;
37 struct StepT;
38 
39 struct Leg;
40 struct LegT;
41 
42 struct RouteObject;
43 struct RouteObjectT;
44 
45 struct Table;
46 struct TableT;
47 
48 struct Error;
49 struct ErrorT;
50 
51 struct FBResult;
52 struct FBResultT;
53 
54 enum ManeuverType {
55   ManeuverType_Turn = 0,
56   ManeuverType_NewName = 1,
57   ManeuverType_Depart = 2,
58   ManeuverType_Arrive = 3,
59   ManeuverType_Merge = 4,
60   ManeuverType_OnRamp = 5,
61   ManeuverType_OffRamp = 6,
62   ManeuverType_Fork = 7,
63   ManeuverType_EndOfRoad = 8,
64   ManeuverType_Continue = 9,
65   ManeuverType_Roundabout = 10,
66   ManeuverType_Rotary = 11,
67   ManeuverType_RoundaboutTurn = 12,
68   ManeuverType_Notification = 13,
69   ManeuverType_ExitRoundabout = 14,
70   ManeuverType_ExitRotary = 15,
71   ManeuverType_MIN = ManeuverType_Turn,
72   ManeuverType_MAX = ManeuverType_ExitRotary
73 };
74 
EnumValuesManeuverType()75 inline const ManeuverType (&EnumValuesManeuverType())[16] {
76   static const ManeuverType values[] = {
77     ManeuverType_Turn,
78     ManeuverType_NewName,
79     ManeuverType_Depart,
80     ManeuverType_Arrive,
81     ManeuverType_Merge,
82     ManeuverType_OnRamp,
83     ManeuverType_OffRamp,
84     ManeuverType_Fork,
85     ManeuverType_EndOfRoad,
86     ManeuverType_Continue,
87     ManeuverType_Roundabout,
88     ManeuverType_Rotary,
89     ManeuverType_RoundaboutTurn,
90     ManeuverType_Notification,
91     ManeuverType_ExitRoundabout,
92     ManeuverType_ExitRotary
93   };
94   return values;
95 }
96 
EnumNamesManeuverType()97 inline const char * const *EnumNamesManeuverType() {
98   static const char * const names[17] = {
99     "Turn",
100     "NewName",
101     "Depart",
102     "Arrive",
103     "Merge",
104     "OnRamp",
105     "OffRamp",
106     "Fork",
107     "EndOfRoad",
108     "Continue",
109     "Roundabout",
110     "Rotary",
111     "RoundaboutTurn",
112     "Notification",
113     "ExitRoundabout",
114     "ExitRotary",
115     nullptr
116   };
117   return names;
118 }
119 
EnumNameManeuverType(ManeuverType e)120 inline const char *EnumNameManeuverType(ManeuverType e) {
121   if (e < ManeuverType_Turn || e > ManeuverType_ExitRotary) return "";
122   const size_t index = static_cast<size_t>(e);
123   return EnumNamesManeuverType()[index];
124 }
125 
126 enum Turn {
127   Turn_None = 0,
128   Turn_UTurn = 1,
129   Turn_SharpRight = 2,
130   Turn_Right = 3,
131   Turn_SlightRight = 4,
132   Turn_Straight = 5,
133   Turn_SlightLeft = 6,
134   Turn_Left = 7,
135   Turn_SharpLeft = 8,
136   Turn_MIN = Turn_None,
137   Turn_MAX = Turn_SharpLeft
138 };
139 
EnumValuesTurn()140 inline const Turn (&EnumValuesTurn())[9] {
141   static const Turn values[] = {
142     Turn_None,
143     Turn_UTurn,
144     Turn_SharpRight,
145     Turn_Right,
146     Turn_SlightRight,
147     Turn_Straight,
148     Turn_SlightLeft,
149     Turn_Left,
150     Turn_SharpLeft
151   };
152   return values;
153 }
154 
EnumNamesTurn()155 inline const char * const *EnumNamesTurn() {
156   static const char * const names[10] = {
157     "None",
158     "UTurn",
159     "SharpRight",
160     "Right",
161     "SlightRight",
162     "Straight",
163     "SlightLeft",
164     "Left",
165     "SharpLeft",
166     nullptr
167   };
168   return names;
169 }
170 
EnumNameTurn(Turn e)171 inline const char *EnumNameTurn(Turn e) {
172   if (e < Turn_None || e > Turn_SharpLeft) return "";
173   const size_t index = static_cast<size_t>(e);
174   return EnumNamesTurn()[index];
175 }
176 
177 FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Position FLATBUFFERS_FINAL_CLASS {
178  private:
179   float longitude_;
180   float latitude_;
181 
182  public:
Position()183   Position() {
184     memset(static_cast<void *>(this), 0, sizeof(Position));
185   }
Position(float _longitude,float _latitude)186   Position(float _longitude, float _latitude)
187       : longitude_(flatbuffers::EndianScalar(_longitude)),
188         latitude_(flatbuffers::EndianScalar(_latitude)) {
189   }
longitude()190   float longitude() const {
191     return flatbuffers::EndianScalar(longitude_);
192   }
latitude()193   float latitude() const {
194     return flatbuffers::EndianScalar(latitude_);
195   }
196 };
197 FLATBUFFERS_STRUCT_END(Position, 8);
198 
199 FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) Uint64Pair FLATBUFFERS_FINAL_CLASS {
200  private:
201   uint64_t first_;
202   uint64_t second_;
203 
204  public:
Uint64Pair()205   Uint64Pair() {
206     memset(static_cast<void *>(this), 0, sizeof(Uint64Pair));
207   }
Uint64Pair(uint64_t _first,uint64_t _second)208   Uint64Pair(uint64_t _first, uint64_t _second)
209       : first_(flatbuffers::EndianScalar(_first)),
210         second_(flatbuffers::EndianScalar(_second)) {
211   }
first()212   uint64_t first() const {
213     return flatbuffers::EndianScalar(first_);
214   }
second()215   uint64_t second() const {
216     return flatbuffers::EndianScalar(second_);
217   }
218 };
219 FLATBUFFERS_STRUCT_END(Uint64Pair, 16);
220 
221 struct WaypointT : public flatbuffers::NativeTable {
222   typedef Waypoint TableType;
223   std::string hint;
224   float distance;
225   std::string name;
226   std::unique_ptr<osrm::engine::api::fbresult::Position> location;
227   std::unique_ptr<osrm::engine::api::fbresult::Uint64Pair> nodes;
228   uint32_t matchings_index;
229   uint32_t waypoint_index;
230   uint32_t alternatives_count;
231   uint32_t trips_index;
WaypointTWaypointT232   WaypointT()
233       : distance(0.0f),
234         matchings_index(0),
235         waypoint_index(0),
236         alternatives_count(0),
237         trips_index(0) {
238   }
239 };
240 
241 struct Waypoint FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
242   typedef WaypointT NativeTableType;
243   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
244     VT_HINT = 4,
245     VT_DISTANCE = 6,
246     VT_NAME = 8,
247     VT_LOCATION = 10,
248     VT_NODES = 12,
249     VT_MATCHINGS_INDEX = 14,
250     VT_WAYPOINT_INDEX = 16,
251     VT_ALTERNATIVES_COUNT = 18,
252     VT_TRIPS_INDEX = 20
253   };
hintFLATBUFFERS_FINAL_CLASS254   const flatbuffers::String *hint() const {
255     return GetPointer<const flatbuffers::String *>(VT_HINT);
256   }
distanceFLATBUFFERS_FINAL_CLASS257   float distance() const {
258     return GetField<float>(VT_DISTANCE, 0.0f);
259   }
nameFLATBUFFERS_FINAL_CLASS260   const flatbuffers::String *name() const {
261     return GetPointer<const flatbuffers::String *>(VT_NAME);
262   }
locationFLATBUFFERS_FINAL_CLASS263   const osrm::engine::api::fbresult::Position *location() const {
264     return GetStruct<const osrm::engine::api::fbresult::Position *>(VT_LOCATION);
265   }
nodesFLATBUFFERS_FINAL_CLASS266   const osrm::engine::api::fbresult::Uint64Pair *nodes() const {
267     return GetStruct<const osrm::engine::api::fbresult::Uint64Pair *>(VT_NODES);
268   }
matchings_indexFLATBUFFERS_FINAL_CLASS269   uint32_t matchings_index() const {
270     return GetField<uint32_t>(VT_MATCHINGS_INDEX, 0);
271   }
waypoint_indexFLATBUFFERS_FINAL_CLASS272   uint32_t waypoint_index() const {
273     return GetField<uint32_t>(VT_WAYPOINT_INDEX, 0);
274   }
alternatives_countFLATBUFFERS_FINAL_CLASS275   uint32_t alternatives_count() const {
276     return GetField<uint32_t>(VT_ALTERNATIVES_COUNT, 0);
277   }
trips_indexFLATBUFFERS_FINAL_CLASS278   uint32_t trips_index() const {
279     return GetField<uint32_t>(VT_TRIPS_INDEX, 0);
280   }
VerifyFLATBUFFERS_FINAL_CLASS281   bool Verify(flatbuffers::Verifier &verifier) const {
282     return VerifyTableStart(verifier) &&
283            VerifyOffset(verifier, VT_HINT) &&
284            verifier.VerifyString(hint()) &&
285            VerifyField<float>(verifier, VT_DISTANCE) &&
286            VerifyOffset(verifier, VT_NAME) &&
287            verifier.VerifyString(name()) &&
288            VerifyField<osrm::engine::api::fbresult::Position>(verifier, VT_LOCATION) &&
289            VerifyField<osrm::engine::api::fbresult::Uint64Pair>(verifier, VT_NODES) &&
290            VerifyField<uint32_t>(verifier, VT_MATCHINGS_INDEX) &&
291            VerifyField<uint32_t>(verifier, VT_WAYPOINT_INDEX) &&
292            VerifyField<uint32_t>(verifier, VT_ALTERNATIVES_COUNT) &&
293            VerifyField<uint32_t>(verifier, VT_TRIPS_INDEX) &&
294            verifier.EndTable();
295   }
296   WaypointT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
297   void UnPackTo(WaypointT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
298   static flatbuffers::Offset<Waypoint> Pack(flatbuffers::FlatBufferBuilder &_fbb, const WaypointT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
299 };
300 
301 struct WaypointBuilder {
302   flatbuffers::FlatBufferBuilder &fbb_;
303   flatbuffers::uoffset_t start_;
add_hintWaypointBuilder304   void add_hint(flatbuffers::Offset<flatbuffers::String> hint) {
305     fbb_.AddOffset(Waypoint::VT_HINT, hint);
306   }
add_distanceWaypointBuilder307   void add_distance(float distance) {
308     fbb_.AddElement<float>(Waypoint::VT_DISTANCE, distance, 0.0f);
309   }
add_nameWaypointBuilder310   void add_name(flatbuffers::Offset<flatbuffers::String> name) {
311     fbb_.AddOffset(Waypoint::VT_NAME, name);
312   }
add_locationWaypointBuilder313   void add_location(const osrm::engine::api::fbresult::Position *location) {
314     fbb_.AddStruct(Waypoint::VT_LOCATION, location);
315   }
add_nodesWaypointBuilder316   void add_nodes(const osrm::engine::api::fbresult::Uint64Pair *nodes) {
317     fbb_.AddStruct(Waypoint::VT_NODES, nodes);
318   }
add_matchings_indexWaypointBuilder319   void add_matchings_index(uint32_t matchings_index) {
320     fbb_.AddElement<uint32_t>(Waypoint::VT_MATCHINGS_INDEX, matchings_index, 0);
321   }
add_waypoint_indexWaypointBuilder322   void add_waypoint_index(uint32_t waypoint_index) {
323     fbb_.AddElement<uint32_t>(Waypoint::VT_WAYPOINT_INDEX, waypoint_index, 0);
324   }
add_alternatives_countWaypointBuilder325   void add_alternatives_count(uint32_t alternatives_count) {
326     fbb_.AddElement<uint32_t>(Waypoint::VT_ALTERNATIVES_COUNT, alternatives_count, 0);
327   }
add_trips_indexWaypointBuilder328   void add_trips_index(uint32_t trips_index) {
329     fbb_.AddElement<uint32_t>(Waypoint::VT_TRIPS_INDEX, trips_index, 0);
330   }
WaypointBuilderWaypointBuilder331   explicit WaypointBuilder(flatbuffers::FlatBufferBuilder &_fbb)
332         : fbb_(_fbb) {
333     start_ = fbb_.StartTable();
334   }
335   WaypointBuilder &operator=(const WaypointBuilder &);
FinishWaypointBuilder336   flatbuffers::Offset<Waypoint> Finish() {
337     const auto end = fbb_.EndTable(start_);
338     auto o = flatbuffers::Offset<Waypoint>(end);
339     return o;
340   }
341 };
342 
343 inline flatbuffers::Offset<Waypoint> CreateWaypoint(
344     flatbuffers::FlatBufferBuilder &_fbb,
345     flatbuffers::Offset<flatbuffers::String> hint = 0,
346     float distance = 0.0f,
347     flatbuffers::Offset<flatbuffers::String> name = 0,
348     const osrm::engine::api::fbresult::Position *location = 0,
349     const osrm::engine::api::fbresult::Uint64Pair *nodes = 0,
350     uint32_t matchings_index = 0,
351     uint32_t waypoint_index = 0,
352     uint32_t alternatives_count = 0,
353     uint32_t trips_index = 0) {
354   WaypointBuilder builder_(_fbb);
355   builder_.add_trips_index(trips_index);
356   builder_.add_alternatives_count(alternatives_count);
357   builder_.add_waypoint_index(waypoint_index);
358   builder_.add_matchings_index(matchings_index);
359   builder_.add_nodes(nodes);
360   builder_.add_location(location);
361   builder_.add_name(name);
362   builder_.add_distance(distance);
363   builder_.add_hint(hint);
364   return builder_.Finish();
365 }
366 
367 inline flatbuffers::Offset<Waypoint> CreateWaypointDirect(
368     flatbuffers::FlatBufferBuilder &_fbb,
369     const char *hint = nullptr,
370     float distance = 0.0f,
371     const char *name = nullptr,
372     const osrm::engine::api::fbresult::Position *location = 0,
373     const osrm::engine::api::fbresult::Uint64Pair *nodes = 0,
374     uint32_t matchings_index = 0,
375     uint32_t waypoint_index = 0,
376     uint32_t alternatives_count = 0,
377     uint32_t trips_index = 0) {
378   auto hint__ = hint ? _fbb.CreateString(hint) : 0;
379   auto name__ = name ? _fbb.CreateString(name) : 0;
380   return osrm::engine::api::fbresult::CreateWaypoint(
381       _fbb,
382       hint__,
383       distance,
384       name__,
385       location,
386       nodes,
387       matchings_index,
388       waypoint_index,
389       alternatives_count,
390       trips_index);
391 }
392 
393 flatbuffers::Offset<Waypoint> CreateWaypoint(flatbuffers::FlatBufferBuilder &_fbb, const WaypointT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
394 
395 struct MetadataT : public flatbuffers::NativeTable {
396   typedef Metadata TableType;
397   std::vector<std::string> datasource_names;
MetadataTMetadataT398   MetadataT() {
399   }
400 };
401 
402 struct Metadata FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
403   typedef MetadataT NativeTableType;
404   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
405     VT_DATASOURCE_NAMES = 4
406   };
datasource_namesFLATBUFFERS_FINAL_CLASS407   const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *datasource_names() const {
408     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_DATASOURCE_NAMES);
409   }
VerifyFLATBUFFERS_FINAL_CLASS410   bool Verify(flatbuffers::Verifier &verifier) const {
411     return VerifyTableStart(verifier) &&
412            VerifyOffset(verifier, VT_DATASOURCE_NAMES) &&
413            verifier.VerifyVector(datasource_names()) &&
414            verifier.VerifyVectorOfStrings(datasource_names()) &&
415            verifier.EndTable();
416   }
417   MetadataT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
418   void UnPackTo(MetadataT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
419   static flatbuffers::Offset<Metadata> Pack(flatbuffers::FlatBufferBuilder &_fbb, const MetadataT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
420 };
421 
422 struct MetadataBuilder {
423   flatbuffers::FlatBufferBuilder &fbb_;
424   flatbuffers::uoffset_t start_;
add_datasource_namesMetadataBuilder425   void add_datasource_names(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> datasource_names) {
426     fbb_.AddOffset(Metadata::VT_DATASOURCE_NAMES, datasource_names);
427   }
MetadataBuilderMetadataBuilder428   explicit MetadataBuilder(flatbuffers::FlatBufferBuilder &_fbb)
429         : fbb_(_fbb) {
430     start_ = fbb_.StartTable();
431   }
432   MetadataBuilder &operator=(const MetadataBuilder &);
FinishMetadataBuilder433   flatbuffers::Offset<Metadata> Finish() {
434     const auto end = fbb_.EndTable(start_);
435     auto o = flatbuffers::Offset<Metadata>(end);
436     return o;
437   }
438 };
439 
440 inline flatbuffers::Offset<Metadata> CreateMetadata(
441     flatbuffers::FlatBufferBuilder &_fbb,
442     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> datasource_names = 0) {
443   MetadataBuilder builder_(_fbb);
444   builder_.add_datasource_names(datasource_names);
445   return builder_.Finish();
446 }
447 
448 inline flatbuffers::Offset<Metadata> CreateMetadataDirect(
449     flatbuffers::FlatBufferBuilder &_fbb,
450     const std::vector<flatbuffers::Offset<flatbuffers::String>> *datasource_names = nullptr) {
451   auto datasource_names__ = datasource_names ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*datasource_names) : 0;
452   return osrm::engine::api::fbresult::CreateMetadata(
453       _fbb,
454       datasource_names__);
455 }
456 
457 flatbuffers::Offset<Metadata> CreateMetadata(flatbuffers::FlatBufferBuilder &_fbb, const MetadataT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
458 
459 struct AnnotationT : public flatbuffers::NativeTable {
460   typedef Annotation TableType;
461   std::vector<uint32_t> distance;
462   std::vector<uint32_t> duration;
463   std::vector<uint32_t> datasources;
464   std::vector<uint32_t> nodes;
465   std::vector<uint32_t> weight;
466   std::vector<float> speed;
467   std::unique_ptr<osrm::engine::api::fbresult::MetadataT> metadata;
AnnotationTAnnotationT468   AnnotationT() {
469   }
470 };
471 
472 struct Annotation FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
473   typedef AnnotationT NativeTableType;
474   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
475     VT_DISTANCE = 4,
476     VT_DURATION = 6,
477     VT_DATASOURCES = 8,
478     VT_NODES = 10,
479     VT_WEIGHT = 12,
480     VT_SPEED = 14,
481     VT_METADATA = 16
482   };
distanceFLATBUFFERS_FINAL_CLASS483   const flatbuffers::Vector<uint32_t> *distance() const {
484     return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_DISTANCE);
485   }
durationFLATBUFFERS_FINAL_CLASS486   const flatbuffers::Vector<uint32_t> *duration() const {
487     return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_DURATION);
488   }
datasourcesFLATBUFFERS_FINAL_CLASS489   const flatbuffers::Vector<uint32_t> *datasources() const {
490     return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_DATASOURCES);
491   }
nodesFLATBUFFERS_FINAL_CLASS492   const flatbuffers::Vector<uint32_t> *nodes() const {
493     return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_NODES);
494   }
weightFLATBUFFERS_FINAL_CLASS495   const flatbuffers::Vector<uint32_t> *weight() const {
496     return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_WEIGHT);
497   }
speedFLATBUFFERS_FINAL_CLASS498   const flatbuffers::Vector<float> *speed() const {
499     return GetPointer<const flatbuffers::Vector<float> *>(VT_SPEED);
500   }
metadataFLATBUFFERS_FINAL_CLASS501   const osrm::engine::api::fbresult::Metadata *metadata() const {
502     return GetPointer<const osrm::engine::api::fbresult::Metadata *>(VT_METADATA);
503   }
VerifyFLATBUFFERS_FINAL_CLASS504   bool Verify(flatbuffers::Verifier &verifier) const {
505     return VerifyTableStart(verifier) &&
506            VerifyOffset(verifier, VT_DISTANCE) &&
507            verifier.VerifyVector(distance()) &&
508            VerifyOffset(verifier, VT_DURATION) &&
509            verifier.VerifyVector(duration()) &&
510            VerifyOffset(verifier, VT_DATASOURCES) &&
511            verifier.VerifyVector(datasources()) &&
512            VerifyOffset(verifier, VT_NODES) &&
513            verifier.VerifyVector(nodes()) &&
514            VerifyOffset(verifier, VT_WEIGHT) &&
515            verifier.VerifyVector(weight()) &&
516            VerifyOffset(verifier, VT_SPEED) &&
517            verifier.VerifyVector(speed()) &&
518            VerifyOffset(verifier, VT_METADATA) &&
519            verifier.VerifyTable(metadata()) &&
520            verifier.EndTable();
521   }
522   AnnotationT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
523   void UnPackTo(AnnotationT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
524   static flatbuffers::Offset<Annotation> Pack(flatbuffers::FlatBufferBuilder &_fbb, const AnnotationT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
525 };
526 
527 struct AnnotationBuilder {
528   flatbuffers::FlatBufferBuilder &fbb_;
529   flatbuffers::uoffset_t start_;
add_distanceAnnotationBuilder530   void add_distance(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> distance) {
531     fbb_.AddOffset(Annotation::VT_DISTANCE, distance);
532   }
add_durationAnnotationBuilder533   void add_duration(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> duration) {
534     fbb_.AddOffset(Annotation::VT_DURATION, duration);
535   }
add_datasourcesAnnotationBuilder536   void add_datasources(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> datasources) {
537     fbb_.AddOffset(Annotation::VT_DATASOURCES, datasources);
538   }
add_nodesAnnotationBuilder539   void add_nodes(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> nodes) {
540     fbb_.AddOffset(Annotation::VT_NODES, nodes);
541   }
add_weightAnnotationBuilder542   void add_weight(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> weight) {
543     fbb_.AddOffset(Annotation::VT_WEIGHT, weight);
544   }
add_speedAnnotationBuilder545   void add_speed(flatbuffers::Offset<flatbuffers::Vector<float>> speed) {
546     fbb_.AddOffset(Annotation::VT_SPEED, speed);
547   }
add_metadataAnnotationBuilder548   void add_metadata(flatbuffers::Offset<osrm::engine::api::fbresult::Metadata> metadata) {
549     fbb_.AddOffset(Annotation::VT_METADATA, metadata);
550   }
AnnotationBuilderAnnotationBuilder551   explicit AnnotationBuilder(flatbuffers::FlatBufferBuilder &_fbb)
552         : fbb_(_fbb) {
553     start_ = fbb_.StartTable();
554   }
555   AnnotationBuilder &operator=(const AnnotationBuilder &);
FinishAnnotationBuilder556   flatbuffers::Offset<Annotation> Finish() {
557     const auto end = fbb_.EndTable(start_);
558     auto o = flatbuffers::Offset<Annotation>(end);
559     return o;
560   }
561 };
562 
563 inline flatbuffers::Offset<Annotation> CreateAnnotation(
564     flatbuffers::FlatBufferBuilder &_fbb,
565     flatbuffers::Offset<flatbuffers::Vector<uint32_t>> distance = 0,
566     flatbuffers::Offset<flatbuffers::Vector<uint32_t>> duration = 0,
567     flatbuffers::Offset<flatbuffers::Vector<uint32_t>> datasources = 0,
568     flatbuffers::Offset<flatbuffers::Vector<uint32_t>> nodes = 0,
569     flatbuffers::Offset<flatbuffers::Vector<uint32_t>> weight = 0,
570     flatbuffers::Offset<flatbuffers::Vector<float>> speed = 0,
571     flatbuffers::Offset<osrm::engine::api::fbresult::Metadata> metadata = 0) {
572   AnnotationBuilder builder_(_fbb);
573   builder_.add_metadata(metadata);
574   builder_.add_speed(speed);
575   builder_.add_weight(weight);
576   builder_.add_nodes(nodes);
577   builder_.add_datasources(datasources);
578   builder_.add_duration(duration);
579   builder_.add_distance(distance);
580   return builder_.Finish();
581 }
582 
583 inline flatbuffers::Offset<Annotation> CreateAnnotationDirect(
584     flatbuffers::FlatBufferBuilder &_fbb,
585     const std::vector<uint32_t> *distance = nullptr,
586     const std::vector<uint32_t> *duration = nullptr,
587     const std::vector<uint32_t> *datasources = nullptr,
588     const std::vector<uint32_t> *nodes = nullptr,
589     const std::vector<uint32_t> *weight = nullptr,
590     const std::vector<float> *speed = nullptr,
591     flatbuffers::Offset<osrm::engine::api::fbresult::Metadata> metadata = 0) {
592   auto distance__ = distance ? _fbb.CreateVector<uint32_t>(*distance) : 0;
593   auto duration__ = duration ? _fbb.CreateVector<uint32_t>(*duration) : 0;
594   auto datasources__ = datasources ? _fbb.CreateVector<uint32_t>(*datasources) : 0;
595   auto nodes__ = nodes ? _fbb.CreateVector<uint32_t>(*nodes) : 0;
596   auto weight__ = weight ? _fbb.CreateVector<uint32_t>(*weight) : 0;
597   auto speed__ = speed ? _fbb.CreateVector<float>(*speed) : 0;
598   return osrm::engine::api::fbresult::CreateAnnotation(
599       _fbb,
600       distance__,
601       duration__,
602       datasources__,
603       nodes__,
604       weight__,
605       speed__,
606       metadata);
607 }
608 
609 flatbuffers::Offset<Annotation> CreateAnnotation(flatbuffers::FlatBufferBuilder &_fbb, const AnnotationT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
610 
611 struct StepManeuverT : public flatbuffers::NativeTable {
612   typedef StepManeuver TableType;
613   std::unique_ptr<osrm::engine::api::fbresult::Position> location;
614   uint16_t bearing_before;
615   uint16_t bearing_after;
616   osrm::engine::api::fbresult::ManeuverType type;
617   osrm::engine::api::fbresult::Turn modifier;
618   uint8_t exit;
StepManeuverTStepManeuverT619   StepManeuverT()
620       : bearing_before(0),
621         bearing_after(0),
622         type(osrm::engine::api::fbresult::ManeuverType_Turn),
623         modifier(osrm::engine::api::fbresult::Turn_None),
624         exit(0) {
625   }
626 };
627 
628 struct StepManeuver FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
629   typedef StepManeuverT NativeTableType;
630   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
631     VT_LOCATION = 4,
632     VT_BEARING_BEFORE = 6,
633     VT_BEARING_AFTER = 8,
634     VT_TYPE = 10,
635     VT_MODIFIER = 12,
636     VT_EXIT = 14
637   };
locationFLATBUFFERS_FINAL_CLASS638   const osrm::engine::api::fbresult::Position *location() const {
639     return GetStruct<const osrm::engine::api::fbresult::Position *>(VT_LOCATION);
640   }
bearing_beforeFLATBUFFERS_FINAL_CLASS641   uint16_t bearing_before() const {
642     return GetField<uint16_t>(VT_BEARING_BEFORE, 0);
643   }
bearing_afterFLATBUFFERS_FINAL_CLASS644   uint16_t bearing_after() const {
645     return GetField<uint16_t>(VT_BEARING_AFTER, 0);
646   }
typeFLATBUFFERS_FINAL_CLASS647   osrm::engine::api::fbresult::ManeuverType type() const {
648     return static_cast<osrm::engine::api::fbresult::ManeuverType>(GetField<int8_t>(VT_TYPE, 0));
649   }
modifierFLATBUFFERS_FINAL_CLASS650   osrm::engine::api::fbresult::Turn modifier() const {
651     return static_cast<osrm::engine::api::fbresult::Turn>(GetField<int8_t>(VT_MODIFIER, 0));
652   }
exitFLATBUFFERS_FINAL_CLASS653   uint8_t exit() const {
654     return GetField<uint8_t>(VT_EXIT, 0);
655   }
VerifyFLATBUFFERS_FINAL_CLASS656   bool Verify(flatbuffers::Verifier &verifier) const {
657     return VerifyTableStart(verifier) &&
658            VerifyField<osrm::engine::api::fbresult::Position>(verifier, VT_LOCATION) &&
659            VerifyField<uint16_t>(verifier, VT_BEARING_BEFORE) &&
660            VerifyField<uint16_t>(verifier, VT_BEARING_AFTER) &&
661            VerifyField<int8_t>(verifier, VT_TYPE) &&
662            VerifyField<int8_t>(verifier, VT_MODIFIER) &&
663            VerifyField<uint8_t>(verifier, VT_EXIT) &&
664            verifier.EndTable();
665   }
666   StepManeuverT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
667   void UnPackTo(StepManeuverT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
668   static flatbuffers::Offset<StepManeuver> Pack(flatbuffers::FlatBufferBuilder &_fbb, const StepManeuverT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
669 };
670 
671 struct StepManeuverBuilder {
672   flatbuffers::FlatBufferBuilder &fbb_;
673   flatbuffers::uoffset_t start_;
add_locationStepManeuverBuilder674   void add_location(const osrm::engine::api::fbresult::Position *location) {
675     fbb_.AddStruct(StepManeuver::VT_LOCATION, location);
676   }
add_bearing_beforeStepManeuverBuilder677   void add_bearing_before(uint16_t bearing_before) {
678     fbb_.AddElement<uint16_t>(StepManeuver::VT_BEARING_BEFORE, bearing_before, 0);
679   }
add_bearing_afterStepManeuverBuilder680   void add_bearing_after(uint16_t bearing_after) {
681     fbb_.AddElement<uint16_t>(StepManeuver::VT_BEARING_AFTER, bearing_after, 0);
682   }
add_typeStepManeuverBuilder683   void add_type(osrm::engine::api::fbresult::ManeuverType type) {
684     fbb_.AddElement<int8_t>(StepManeuver::VT_TYPE, static_cast<int8_t>(type), 0);
685   }
add_modifierStepManeuverBuilder686   void add_modifier(osrm::engine::api::fbresult::Turn modifier) {
687     fbb_.AddElement<int8_t>(StepManeuver::VT_MODIFIER, static_cast<int8_t>(modifier), 0);
688   }
add_exitStepManeuverBuilder689   void add_exit(uint8_t exit) {
690     fbb_.AddElement<uint8_t>(StepManeuver::VT_EXIT, exit, 0);
691   }
StepManeuverBuilderStepManeuverBuilder692   explicit StepManeuverBuilder(flatbuffers::FlatBufferBuilder &_fbb)
693         : fbb_(_fbb) {
694     start_ = fbb_.StartTable();
695   }
696   StepManeuverBuilder &operator=(const StepManeuverBuilder &);
FinishStepManeuverBuilder697   flatbuffers::Offset<StepManeuver> Finish() {
698     const auto end = fbb_.EndTable(start_);
699     auto o = flatbuffers::Offset<StepManeuver>(end);
700     return o;
701   }
702 };
703 
704 inline flatbuffers::Offset<StepManeuver> CreateStepManeuver(
705     flatbuffers::FlatBufferBuilder &_fbb,
706     const osrm::engine::api::fbresult::Position *location = 0,
707     uint16_t bearing_before = 0,
708     uint16_t bearing_after = 0,
709     osrm::engine::api::fbresult::ManeuverType type = osrm::engine::api::fbresult::ManeuverType_Turn,
710     osrm::engine::api::fbresult::Turn modifier = osrm::engine::api::fbresult::Turn_None,
711     uint8_t exit = 0) {
712   StepManeuverBuilder builder_(_fbb);
713   builder_.add_location(location);
714   builder_.add_bearing_after(bearing_after);
715   builder_.add_bearing_before(bearing_before);
716   builder_.add_exit(exit);
717   builder_.add_modifier(modifier);
718   builder_.add_type(type);
719   return builder_.Finish();
720 }
721 
722 flatbuffers::Offset<StepManeuver> CreateStepManeuver(flatbuffers::FlatBufferBuilder &_fbb, const StepManeuverT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
723 
724 struct LaneT : public flatbuffers::NativeTable {
725   typedef Lane TableType;
726   std::vector<osrm::engine::api::fbresult::Turn> indications;
727   bool valid;
LaneTLaneT728   LaneT()
729       : valid(false) {
730   }
731 };
732 
733 struct Lane FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
734   typedef LaneT NativeTableType;
735   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
736     VT_INDICATIONS = 4,
737     VT_VALID = 6
738   };
indicationsFLATBUFFERS_FINAL_CLASS739   const flatbuffers::Vector<int8_t> *indications() const {
740     return GetPointer<const flatbuffers::Vector<int8_t> *>(VT_INDICATIONS);
741   }
validFLATBUFFERS_FINAL_CLASS742   bool valid() const {
743     return GetField<uint8_t>(VT_VALID, 0) != 0;
744   }
VerifyFLATBUFFERS_FINAL_CLASS745   bool Verify(flatbuffers::Verifier &verifier) const {
746     return VerifyTableStart(verifier) &&
747            VerifyOffset(verifier, VT_INDICATIONS) &&
748            verifier.VerifyVector(indications()) &&
749            VerifyField<uint8_t>(verifier, VT_VALID) &&
750            verifier.EndTable();
751   }
752   LaneT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
753   void UnPackTo(LaneT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
754   static flatbuffers::Offset<Lane> Pack(flatbuffers::FlatBufferBuilder &_fbb, const LaneT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
755 };
756 
757 struct LaneBuilder {
758   flatbuffers::FlatBufferBuilder &fbb_;
759   flatbuffers::uoffset_t start_;
add_indicationsLaneBuilder760   void add_indications(flatbuffers::Offset<flatbuffers::Vector<int8_t>> indications) {
761     fbb_.AddOffset(Lane::VT_INDICATIONS, indications);
762   }
add_validLaneBuilder763   void add_valid(bool valid) {
764     fbb_.AddElement<uint8_t>(Lane::VT_VALID, static_cast<uint8_t>(valid), 0);
765   }
LaneBuilderLaneBuilder766   explicit LaneBuilder(flatbuffers::FlatBufferBuilder &_fbb)
767         : fbb_(_fbb) {
768     start_ = fbb_.StartTable();
769   }
770   LaneBuilder &operator=(const LaneBuilder &);
FinishLaneBuilder771   flatbuffers::Offset<Lane> Finish() {
772     const auto end = fbb_.EndTable(start_);
773     auto o = flatbuffers::Offset<Lane>(end);
774     return o;
775   }
776 };
777 
778 inline flatbuffers::Offset<Lane> CreateLane(
779     flatbuffers::FlatBufferBuilder &_fbb,
780     flatbuffers::Offset<flatbuffers::Vector<int8_t>> indications = 0,
781     bool valid = false) {
782   LaneBuilder builder_(_fbb);
783   builder_.add_indications(indications);
784   builder_.add_valid(valid);
785   return builder_.Finish();
786 }
787 
788 inline flatbuffers::Offset<Lane> CreateLaneDirect(
789     flatbuffers::FlatBufferBuilder &_fbb,
790     const std::vector<int8_t> *indications = nullptr,
791     bool valid = false) {
792   auto indications__ = indications ? _fbb.CreateVector<int8_t>(*indications) : 0;
793   return osrm::engine::api::fbresult::CreateLane(
794       _fbb,
795       indications__,
796       valid);
797 }
798 
799 flatbuffers::Offset<Lane> CreateLane(flatbuffers::FlatBufferBuilder &_fbb, const LaneT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
800 
801 struct IntersectionT : public flatbuffers::NativeTable {
802   typedef Intersection TableType;
803   std::unique_ptr<osrm::engine::api::fbresult::Position> location;
804   std::vector<int16_t> bearings;
805   std::vector<std::string> classes;
806   std::vector<bool> entry;
807   uint32_t in_bearing;
808   uint32_t out_bearing;
809   std::vector<std::unique_ptr<osrm::engine::api::fbresult::LaneT>> lanes;
IntersectionTIntersectionT810   IntersectionT()
811       : in_bearing(0),
812         out_bearing(0) {
813   }
814 };
815 
816 struct Intersection FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
817   typedef IntersectionT NativeTableType;
818   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
819     VT_LOCATION = 4,
820     VT_BEARINGS = 6,
821     VT_CLASSES = 8,
822     VT_ENTRY = 10,
823     VT_IN_BEARING = 12,
824     VT_OUT_BEARING = 14,
825     VT_LANES = 16
826   };
locationFLATBUFFERS_FINAL_CLASS827   const osrm::engine::api::fbresult::Position *location() const {
828     return GetStruct<const osrm::engine::api::fbresult::Position *>(VT_LOCATION);
829   }
bearingsFLATBUFFERS_FINAL_CLASS830   const flatbuffers::Vector<int16_t> *bearings() const {
831     return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_BEARINGS);
832   }
classesFLATBUFFERS_FINAL_CLASS833   const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *classes() const {
834     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_CLASSES);
835   }
entryFLATBUFFERS_FINAL_CLASS836   const flatbuffers::Vector<uint8_t> *entry() const {
837     return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_ENTRY);
838   }
in_bearingFLATBUFFERS_FINAL_CLASS839   uint32_t in_bearing() const {
840     return GetField<uint32_t>(VT_IN_BEARING, 0);
841   }
out_bearingFLATBUFFERS_FINAL_CLASS842   uint32_t out_bearing() const {
843     return GetField<uint32_t>(VT_OUT_BEARING, 0);
844   }
lanesFLATBUFFERS_FINAL_CLASS845   const flatbuffers::Vector<flatbuffers::Offset<osrm::engine::api::fbresult::Lane>> *lanes() const {
846     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<osrm::engine::api::fbresult::Lane>> *>(VT_LANES);
847   }
VerifyFLATBUFFERS_FINAL_CLASS848   bool Verify(flatbuffers::Verifier &verifier) const {
849     return VerifyTableStart(verifier) &&
850            VerifyField<osrm::engine::api::fbresult::Position>(verifier, VT_LOCATION) &&
851            VerifyOffset(verifier, VT_BEARINGS) &&
852            verifier.VerifyVector(bearings()) &&
853            VerifyOffset(verifier, VT_CLASSES) &&
854            verifier.VerifyVector(classes()) &&
855            verifier.VerifyVectorOfStrings(classes()) &&
856            VerifyOffset(verifier, VT_ENTRY) &&
857            verifier.VerifyVector(entry()) &&
858            VerifyField<uint32_t>(verifier, VT_IN_BEARING) &&
859            VerifyField<uint32_t>(verifier, VT_OUT_BEARING) &&
860            VerifyOffset(verifier, VT_LANES) &&
861            verifier.VerifyVector(lanes()) &&
862            verifier.VerifyVectorOfTables(lanes()) &&
863            verifier.EndTable();
864   }
865   IntersectionT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
866   void UnPackTo(IntersectionT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
867   static flatbuffers::Offset<Intersection> Pack(flatbuffers::FlatBufferBuilder &_fbb, const IntersectionT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
868 };
869 
870 struct IntersectionBuilder {
871   flatbuffers::FlatBufferBuilder &fbb_;
872   flatbuffers::uoffset_t start_;
add_locationIntersectionBuilder873   void add_location(const osrm::engine::api::fbresult::Position *location) {
874     fbb_.AddStruct(Intersection::VT_LOCATION, location);
875   }
add_bearingsIntersectionBuilder876   void add_bearings(flatbuffers::Offset<flatbuffers::Vector<int16_t>> bearings) {
877     fbb_.AddOffset(Intersection::VT_BEARINGS, bearings);
878   }
add_classesIntersectionBuilder879   void add_classes(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> classes) {
880     fbb_.AddOffset(Intersection::VT_CLASSES, classes);
881   }
add_entryIntersectionBuilder882   void add_entry(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> entry) {
883     fbb_.AddOffset(Intersection::VT_ENTRY, entry);
884   }
add_in_bearingIntersectionBuilder885   void add_in_bearing(uint32_t in_bearing) {
886     fbb_.AddElement<uint32_t>(Intersection::VT_IN_BEARING, in_bearing, 0);
887   }
add_out_bearingIntersectionBuilder888   void add_out_bearing(uint32_t out_bearing) {
889     fbb_.AddElement<uint32_t>(Intersection::VT_OUT_BEARING, out_bearing, 0);
890   }
add_lanesIntersectionBuilder891   void add_lanes(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<osrm::engine::api::fbresult::Lane>>> lanes) {
892     fbb_.AddOffset(Intersection::VT_LANES, lanes);
893   }
IntersectionBuilderIntersectionBuilder894   explicit IntersectionBuilder(flatbuffers::FlatBufferBuilder &_fbb)
895         : fbb_(_fbb) {
896     start_ = fbb_.StartTable();
897   }
898   IntersectionBuilder &operator=(const IntersectionBuilder &);
FinishIntersectionBuilder899   flatbuffers::Offset<Intersection> Finish() {
900     const auto end = fbb_.EndTable(start_);
901     auto o = flatbuffers::Offset<Intersection>(end);
902     return o;
903   }
904 };
905 
906 inline flatbuffers::Offset<Intersection> CreateIntersection(
907     flatbuffers::FlatBufferBuilder &_fbb,
908     const osrm::engine::api::fbresult::Position *location = 0,
909     flatbuffers::Offset<flatbuffers::Vector<int16_t>> bearings = 0,
910     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> classes = 0,
911     flatbuffers::Offset<flatbuffers::Vector<uint8_t>> entry = 0,
912     uint32_t in_bearing = 0,
913     uint32_t out_bearing = 0,
914     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<osrm::engine::api::fbresult::Lane>>> lanes = 0) {
915   IntersectionBuilder builder_(_fbb);
916   builder_.add_lanes(lanes);
917   builder_.add_out_bearing(out_bearing);
918   builder_.add_in_bearing(in_bearing);
919   builder_.add_entry(entry);
920   builder_.add_classes(classes);
921   builder_.add_bearings(bearings);
922   builder_.add_location(location);
923   return builder_.Finish();
924 }
925 
926 inline flatbuffers::Offset<Intersection> CreateIntersectionDirect(
927     flatbuffers::FlatBufferBuilder &_fbb,
928     const osrm::engine::api::fbresult::Position *location = 0,
929     const std::vector<int16_t> *bearings = nullptr,
930     const std::vector<flatbuffers::Offset<flatbuffers::String>> *classes = nullptr,
931     const std::vector<uint8_t> *entry = nullptr,
932     uint32_t in_bearing = 0,
933     uint32_t out_bearing = 0,
934     const std::vector<flatbuffers::Offset<osrm::engine::api::fbresult::Lane>> *lanes = nullptr) {
935   auto bearings__ = bearings ? _fbb.CreateVector<int16_t>(*bearings) : 0;
936   auto classes__ = classes ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*classes) : 0;
937   auto entry__ = entry ? _fbb.CreateVector<uint8_t>(*entry) : 0;
938   auto lanes__ = lanes ? _fbb.CreateVector<flatbuffers::Offset<osrm::engine::api::fbresult::Lane>>(*lanes) : 0;
939   return osrm::engine::api::fbresult::CreateIntersection(
940       _fbb,
941       location,
942       bearings__,
943       classes__,
944       entry__,
945       in_bearing,
946       out_bearing,
947       lanes__);
948 }
949 
950 flatbuffers::Offset<Intersection> CreateIntersection(flatbuffers::FlatBufferBuilder &_fbb, const IntersectionT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
951 
952 struct StepT : public flatbuffers::NativeTable {
953   typedef Step TableType;
954   float distance;
955   float duration;
956   std::string polyline;
957   std::vector<osrm::engine::api::fbresult::Position> coordinates;
958   float weight;
959   std::string name;
960   std::string ref;
961   std::string pronunciation;
962   std::string destinations;
963   std::string exits;
964   std::string mode;
965   std::unique_ptr<osrm::engine::api::fbresult::StepManeuverT> maneuver;
966   std::vector<std::unique_ptr<osrm::engine::api::fbresult::IntersectionT>> intersections;
967   std::string rotary_name;
968   std::string rotary_pronunciation;
969   bool driving_side;
StepTStepT970   StepT()
971       : distance(0.0f),
972         duration(0.0f),
973         weight(0.0f),
974         driving_side(false) {
975   }
976 };
977 
978 struct Step FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
979   typedef StepT NativeTableType;
980   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
981     VT_DISTANCE = 4,
982     VT_DURATION = 6,
983     VT_POLYLINE = 8,
984     VT_COORDINATES = 10,
985     VT_WEIGHT = 12,
986     VT_NAME = 14,
987     VT_REF = 16,
988     VT_PRONUNCIATION = 18,
989     VT_DESTINATIONS = 20,
990     VT_EXITS = 22,
991     VT_MODE = 24,
992     VT_MANEUVER = 26,
993     VT_INTERSECTIONS = 28,
994     VT_ROTARY_NAME = 30,
995     VT_ROTARY_PRONUNCIATION = 32,
996     VT_DRIVING_SIDE = 34
997   };
distanceFLATBUFFERS_FINAL_CLASS998   float distance() const {
999     return GetField<float>(VT_DISTANCE, 0.0f);
1000   }
durationFLATBUFFERS_FINAL_CLASS1001   float duration() const {
1002     return GetField<float>(VT_DURATION, 0.0f);
1003   }
polylineFLATBUFFERS_FINAL_CLASS1004   const flatbuffers::String *polyline() const {
1005     return GetPointer<const flatbuffers::String *>(VT_POLYLINE);
1006   }
coordinatesFLATBUFFERS_FINAL_CLASS1007   const flatbuffers::Vector<const osrm::engine::api::fbresult::Position *> *coordinates() const {
1008     return GetPointer<const flatbuffers::Vector<const osrm::engine::api::fbresult::Position *> *>(VT_COORDINATES);
1009   }
weightFLATBUFFERS_FINAL_CLASS1010   float weight() const {
1011     return GetField<float>(VT_WEIGHT, 0.0f);
1012   }
nameFLATBUFFERS_FINAL_CLASS1013   const flatbuffers::String *name() const {
1014     return GetPointer<const flatbuffers::String *>(VT_NAME);
1015   }
refFLATBUFFERS_FINAL_CLASS1016   const flatbuffers::String *ref() const {
1017     return GetPointer<const flatbuffers::String *>(VT_REF);
1018   }
pronunciationFLATBUFFERS_FINAL_CLASS1019   const flatbuffers::String *pronunciation() const {
1020     return GetPointer<const flatbuffers::String *>(VT_PRONUNCIATION);
1021   }
destinationsFLATBUFFERS_FINAL_CLASS1022   const flatbuffers::String *destinations() const {
1023     return GetPointer<const flatbuffers::String *>(VT_DESTINATIONS);
1024   }
exitsFLATBUFFERS_FINAL_CLASS1025   const flatbuffers::String *exits() const {
1026     return GetPointer<const flatbuffers::String *>(VT_EXITS);
1027   }
modeFLATBUFFERS_FINAL_CLASS1028   const flatbuffers::String *mode() const {
1029     return GetPointer<const flatbuffers::String *>(VT_MODE);
1030   }
maneuverFLATBUFFERS_FINAL_CLASS1031   const osrm::engine::api::fbresult::StepManeuver *maneuver() const {
1032     return GetPointer<const osrm::engine::api::fbresult::StepManeuver *>(VT_MANEUVER);
1033   }
intersectionsFLATBUFFERS_FINAL_CLASS1034   const flatbuffers::Vector<flatbuffers::Offset<osrm::engine::api::fbresult::Intersection>> *intersections() const {
1035     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<osrm::engine::api::fbresult::Intersection>> *>(VT_INTERSECTIONS);
1036   }
rotary_nameFLATBUFFERS_FINAL_CLASS1037   const flatbuffers::String *rotary_name() const {
1038     return GetPointer<const flatbuffers::String *>(VT_ROTARY_NAME);
1039   }
rotary_pronunciationFLATBUFFERS_FINAL_CLASS1040   const flatbuffers::String *rotary_pronunciation() const {
1041     return GetPointer<const flatbuffers::String *>(VT_ROTARY_PRONUNCIATION);
1042   }
driving_sideFLATBUFFERS_FINAL_CLASS1043   bool driving_side() const {
1044     return GetField<uint8_t>(VT_DRIVING_SIDE, 0) != 0;
1045   }
VerifyFLATBUFFERS_FINAL_CLASS1046   bool Verify(flatbuffers::Verifier &verifier) const {
1047     return VerifyTableStart(verifier) &&
1048            VerifyField<float>(verifier, VT_DISTANCE) &&
1049            VerifyField<float>(verifier, VT_DURATION) &&
1050            VerifyOffset(verifier, VT_POLYLINE) &&
1051            verifier.VerifyString(polyline()) &&
1052            VerifyOffset(verifier, VT_COORDINATES) &&
1053            verifier.VerifyVector(coordinates()) &&
1054            VerifyField<float>(verifier, VT_WEIGHT) &&
1055            VerifyOffset(verifier, VT_NAME) &&
1056            verifier.VerifyString(name()) &&
1057            VerifyOffset(verifier, VT_REF) &&
1058            verifier.VerifyString(ref()) &&
1059            VerifyOffset(verifier, VT_PRONUNCIATION) &&
1060            verifier.VerifyString(pronunciation()) &&
1061            VerifyOffset(verifier, VT_DESTINATIONS) &&
1062            verifier.VerifyString(destinations()) &&
1063            VerifyOffset(verifier, VT_EXITS) &&
1064            verifier.VerifyString(exits()) &&
1065            VerifyOffset(verifier, VT_MODE) &&
1066            verifier.VerifyString(mode()) &&
1067            VerifyOffset(verifier, VT_MANEUVER) &&
1068            verifier.VerifyTable(maneuver()) &&
1069            VerifyOffset(verifier, VT_INTERSECTIONS) &&
1070            verifier.VerifyVector(intersections()) &&
1071            verifier.VerifyVectorOfTables(intersections()) &&
1072            VerifyOffset(verifier, VT_ROTARY_NAME) &&
1073            verifier.VerifyString(rotary_name()) &&
1074            VerifyOffset(verifier, VT_ROTARY_PRONUNCIATION) &&
1075            verifier.VerifyString(rotary_pronunciation()) &&
1076            VerifyField<uint8_t>(verifier, VT_DRIVING_SIDE) &&
1077            verifier.EndTable();
1078   }
1079   StepT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1080   void UnPackTo(StepT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1081   static flatbuffers::Offset<Step> Pack(flatbuffers::FlatBufferBuilder &_fbb, const StepT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1082 };
1083 
1084 struct StepBuilder {
1085   flatbuffers::FlatBufferBuilder &fbb_;
1086   flatbuffers::uoffset_t start_;
add_distanceStepBuilder1087   void add_distance(float distance) {
1088     fbb_.AddElement<float>(Step::VT_DISTANCE, distance, 0.0f);
1089   }
add_durationStepBuilder1090   void add_duration(float duration) {
1091     fbb_.AddElement<float>(Step::VT_DURATION, duration, 0.0f);
1092   }
add_polylineStepBuilder1093   void add_polyline(flatbuffers::Offset<flatbuffers::String> polyline) {
1094     fbb_.AddOffset(Step::VT_POLYLINE, polyline);
1095   }
add_coordinatesStepBuilder1096   void add_coordinates(flatbuffers::Offset<flatbuffers::Vector<const osrm::engine::api::fbresult::Position *>> coordinates) {
1097     fbb_.AddOffset(Step::VT_COORDINATES, coordinates);
1098   }
add_weightStepBuilder1099   void add_weight(float weight) {
1100     fbb_.AddElement<float>(Step::VT_WEIGHT, weight, 0.0f);
1101   }
add_nameStepBuilder1102   void add_name(flatbuffers::Offset<flatbuffers::String> name) {
1103     fbb_.AddOffset(Step::VT_NAME, name);
1104   }
add_refStepBuilder1105   void add_ref(flatbuffers::Offset<flatbuffers::String> ref) {
1106     fbb_.AddOffset(Step::VT_REF, ref);
1107   }
add_pronunciationStepBuilder1108   void add_pronunciation(flatbuffers::Offset<flatbuffers::String> pronunciation) {
1109     fbb_.AddOffset(Step::VT_PRONUNCIATION, pronunciation);
1110   }
add_destinationsStepBuilder1111   void add_destinations(flatbuffers::Offset<flatbuffers::String> destinations) {
1112     fbb_.AddOffset(Step::VT_DESTINATIONS, destinations);
1113   }
add_exitsStepBuilder1114   void add_exits(flatbuffers::Offset<flatbuffers::String> exits) {
1115     fbb_.AddOffset(Step::VT_EXITS, exits);
1116   }
add_modeStepBuilder1117   void add_mode(flatbuffers::Offset<flatbuffers::String> mode) {
1118     fbb_.AddOffset(Step::VT_MODE, mode);
1119   }
add_maneuverStepBuilder1120   void add_maneuver(flatbuffers::Offset<osrm::engine::api::fbresult::StepManeuver> maneuver) {
1121     fbb_.AddOffset(Step::VT_MANEUVER, maneuver);
1122   }
add_intersectionsStepBuilder1123   void add_intersections(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<osrm::engine::api::fbresult::Intersection>>> intersections) {
1124     fbb_.AddOffset(Step::VT_INTERSECTIONS, intersections);
1125   }
add_rotary_nameStepBuilder1126   void add_rotary_name(flatbuffers::Offset<flatbuffers::String> rotary_name) {
1127     fbb_.AddOffset(Step::VT_ROTARY_NAME, rotary_name);
1128   }
add_rotary_pronunciationStepBuilder1129   void add_rotary_pronunciation(flatbuffers::Offset<flatbuffers::String> rotary_pronunciation) {
1130     fbb_.AddOffset(Step::VT_ROTARY_PRONUNCIATION, rotary_pronunciation);
1131   }
add_driving_sideStepBuilder1132   void add_driving_side(bool driving_side) {
1133     fbb_.AddElement<uint8_t>(Step::VT_DRIVING_SIDE, static_cast<uint8_t>(driving_side), 0);
1134   }
StepBuilderStepBuilder1135   explicit StepBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1136         : fbb_(_fbb) {
1137     start_ = fbb_.StartTable();
1138   }
1139   StepBuilder &operator=(const StepBuilder &);
FinishStepBuilder1140   flatbuffers::Offset<Step> Finish() {
1141     const auto end = fbb_.EndTable(start_);
1142     auto o = flatbuffers::Offset<Step>(end);
1143     return o;
1144   }
1145 };
1146 
1147 inline flatbuffers::Offset<Step> CreateStep(
1148     flatbuffers::FlatBufferBuilder &_fbb,
1149     float distance = 0.0f,
1150     float duration = 0.0f,
1151     flatbuffers::Offset<flatbuffers::String> polyline = 0,
1152     flatbuffers::Offset<flatbuffers::Vector<const osrm::engine::api::fbresult::Position *>> coordinates = 0,
1153     float weight = 0.0f,
1154     flatbuffers::Offset<flatbuffers::String> name = 0,
1155     flatbuffers::Offset<flatbuffers::String> ref = 0,
1156     flatbuffers::Offset<flatbuffers::String> pronunciation = 0,
1157     flatbuffers::Offset<flatbuffers::String> destinations = 0,
1158     flatbuffers::Offset<flatbuffers::String> exits = 0,
1159     flatbuffers::Offset<flatbuffers::String> mode = 0,
1160     flatbuffers::Offset<osrm::engine::api::fbresult::StepManeuver> maneuver = 0,
1161     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<osrm::engine::api::fbresult::Intersection>>> intersections = 0,
1162     flatbuffers::Offset<flatbuffers::String> rotary_name = 0,
1163     flatbuffers::Offset<flatbuffers::String> rotary_pronunciation = 0,
1164     bool driving_side = false) {
1165   StepBuilder builder_(_fbb);
1166   builder_.add_rotary_pronunciation(rotary_pronunciation);
1167   builder_.add_rotary_name(rotary_name);
1168   builder_.add_intersections(intersections);
1169   builder_.add_maneuver(maneuver);
1170   builder_.add_mode(mode);
1171   builder_.add_exits(exits);
1172   builder_.add_destinations(destinations);
1173   builder_.add_pronunciation(pronunciation);
1174   builder_.add_ref(ref);
1175   builder_.add_name(name);
1176   builder_.add_weight(weight);
1177   builder_.add_coordinates(coordinates);
1178   builder_.add_polyline(polyline);
1179   builder_.add_duration(duration);
1180   builder_.add_distance(distance);
1181   builder_.add_driving_side(driving_side);
1182   return builder_.Finish();
1183 }
1184 
1185 inline flatbuffers::Offset<Step> CreateStepDirect(
1186     flatbuffers::FlatBufferBuilder &_fbb,
1187     float distance = 0.0f,
1188     float duration = 0.0f,
1189     const char *polyline = nullptr,
1190     const std::vector<osrm::engine::api::fbresult::Position> *coordinates = nullptr,
1191     float weight = 0.0f,
1192     const char *name = nullptr,
1193     const char *ref = nullptr,
1194     const char *pronunciation = nullptr,
1195     const char *destinations = nullptr,
1196     const char *exits = nullptr,
1197     const char *mode = nullptr,
1198     flatbuffers::Offset<osrm::engine::api::fbresult::StepManeuver> maneuver = 0,
1199     const std::vector<flatbuffers::Offset<osrm::engine::api::fbresult::Intersection>> *intersections = nullptr,
1200     const char *rotary_name = nullptr,
1201     const char *rotary_pronunciation = nullptr,
1202     bool driving_side = false) {
1203   auto polyline__ = polyline ? _fbb.CreateString(polyline) : 0;
1204   auto coordinates__ = coordinates ? _fbb.CreateVectorOfStructs<osrm::engine::api::fbresult::Position>(*coordinates) : 0;
1205   auto name__ = name ? _fbb.CreateString(name) : 0;
1206   auto ref__ = ref ? _fbb.CreateString(ref) : 0;
1207   auto pronunciation__ = pronunciation ? _fbb.CreateString(pronunciation) : 0;
1208   auto destinations__ = destinations ? _fbb.CreateString(destinations) : 0;
1209   auto exits__ = exits ? _fbb.CreateString(exits) : 0;
1210   auto mode__ = mode ? _fbb.CreateString(mode) : 0;
1211   auto intersections__ = intersections ? _fbb.CreateVector<flatbuffers::Offset<osrm::engine::api::fbresult::Intersection>>(*intersections) : 0;
1212   auto rotary_name__ = rotary_name ? _fbb.CreateString(rotary_name) : 0;
1213   auto rotary_pronunciation__ = rotary_pronunciation ? _fbb.CreateString(rotary_pronunciation) : 0;
1214   return osrm::engine::api::fbresult::CreateStep(
1215       _fbb,
1216       distance,
1217       duration,
1218       polyline__,
1219       coordinates__,
1220       weight,
1221       name__,
1222       ref__,
1223       pronunciation__,
1224       destinations__,
1225       exits__,
1226       mode__,
1227       maneuver,
1228       intersections__,
1229       rotary_name__,
1230       rotary_pronunciation__,
1231       driving_side);
1232 }
1233 
1234 flatbuffers::Offset<Step> CreateStep(flatbuffers::FlatBufferBuilder &_fbb, const StepT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1235 
1236 struct LegT : public flatbuffers::NativeTable {
1237   typedef Leg TableType;
1238   double distance;
1239   double duration;
1240   double weight;
1241   std::string summary;
1242   std::unique_ptr<osrm::engine::api::fbresult::AnnotationT> annotations;
1243   std::vector<std::unique_ptr<osrm::engine::api::fbresult::StepT>> steps;
LegTLegT1244   LegT()
1245       : distance(0.0),
1246         duration(0.0),
1247         weight(0.0) {
1248   }
1249 };
1250 
1251 struct Leg FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1252   typedef LegT NativeTableType;
1253   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1254     VT_DISTANCE = 4,
1255     VT_DURATION = 6,
1256     VT_WEIGHT = 8,
1257     VT_SUMMARY = 10,
1258     VT_ANNOTATIONS = 12,
1259     VT_STEPS = 14
1260   };
distanceFLATBUFFERS_FINAL_CLASS1261   double distance() const {
1262     return GetField<double>(VT_DISTANCE, 0.0);
1263   }
durationFLATBUFFERS_FINAL_CLASS1264   double duration() const {
1265     return GetField<double>(VT_DURATION, 0.0);
1266   }
weightFLATBUFFERS_FINAL_CLASS1267   double weight() const {
1268     return GetField<double>(VT_WEIGHT, 0.0);
1269   }
summaryFLATBUFFERS_FINAL_CLASS1270   const flatbuffers::String *summary() const {
1271     return GetPointer<const flatbuffers::String *>(VT_SUMMARY);
1272   }
annotationsFLATBUFFERS_FINAL_CLASS1273   const osrm::engine::api::fbresult::Annotation *annotations() const {
1274     return GetPointer<const osrm::engine::api::fbresult::Annotation *>(VT_ANNOTATIONS);
1275   }
stepsFLATBUFFERS_FINAL_CLASS1276   const flatbuffers::Vector<flatbuffers::Offset<osrm::engine::api::fbresult::Step>> *steps() const {
1277     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<osrm::engine::api::fbresult::Step>> *>(VT_STEPS);
1278   }
VerifyFLATBUFFERS_FINAL_CLASS1279   bool Verify(flatbuffers::Verifier &verifier) const {
1280     return VerifyTableStart(verifier) &&
1281            VerifyField<double>(verifier, VT_DISTANCE) &&
1282            VerifyField<double>(verifier, VT_DURATION) &&
1283            VerifyField<double>(verifier, VT_WEIGHT) &&
1284            VerifyOffset(verifier, VT_SUMMARY) &&
1285            verifier.VerifyString(summary()) &&
1286            VerifyOffset(verifier, VT_ANNOTATIONS) &&
1287            verifier.VerifyTable(annotations()) &&
1288            VerifyOffset(verifier, VT_STEPS) &&
1289            verifier.VerifyVector(steps()) &&
1290            verifier.VerifyVectorOfTables(steps()) &&
1291            verifier.EndTable();
1292   }
1293   LegT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1294   void UnPackTo(LegT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1295   static flatbuffers::Offset<Leg> Pack(flatbuffers::FlatBufferBuilder &_fbb, const LegT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1296 };
1297 
1298 struct LegBuilder {
1299   flatbuffers::FlatBufferBuilder &fbb_;
1300   flatbuffers::uoffset_t start_;
add_distanceLegBuilder1301   void add_distance(double distance) {
1302     fbb_.AddElement<double>(Leg::VT_DISTANCE, distance, 0.0);
1303   }
add_durationLegBuilder1304   void add_duration(double duration) {
1305     fbb_.AddElement<double>(Leg::VT_DURATION, duration, 0.0);
1306   }
add_weightLegBuilder1307   void add_weight(double weight) {
1308     fbb_.AddElement<double>(Leg::VT_WEIGHT, weight, 0.0);
1309   }
add_summaryLegBuilder1310   void add_summary(flatbuffers::Offset<flatbuffers::String> summary) {
1311     fbb_.AddOffset(Leg::VT_SUMMARY, summary);
1312   }
add_annotationsLegBuilder1313   void add_annotations(flatbuffers::Offset<osrm::engine::api::fbresult::Annotation> annotations) {
1314     fbb_.AddOffset(Leg::VT_ANNOTATIONS, annotations);
1315   }
add_stepsLegBuilder1316   void add_steps(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<osrm::engine::api::fbresult::Step>>> steps) {
1317     fbb_.AddOffset(Leg::VT_STEPS, steps);
1318   }
LegBuilderLegBuilder1319   explicit LegBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1320         : fbb_(_fbb) {
1321     start_ = fbb_.StartTable();
1322   }
1323   LegBuilder &operator=(const LegBuilder &);
FinishLegBuilder1324   flatbuffers::Offset<Leg> Finish() {
1325     const auto end = fbb_.EndTable(start_);
1326     auto o = flatbuffers::Offset<Leg>(end);
1327     return o;
1328   }
1329 };
1330 
1331 inline flatbuffers::Offset<Leg> CreateLeg(
1332     flatbuffers::FlatBufferBuilder &_fbb,
1333     double distance = 0.0,
1334     double duration = 0.0,
1335     double weight = 0.0,
1336     flatbuffers::Offset<flatbuffers::String> summary = 0,
1337     flatbuffers::Offset<osrm::engine::api::fbresult::Annotation> annotations = 0,
1338     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<osrm::engine::api::fbresult::Step>>> steps = 0) {
1339   LegBuilder builder_(_fbb);
1340   builder_.add_weight(weight);
1341   builder_.add_duration(duration);
1342   builder_.add_distance(distance);
1343   builder_.add_steps(steps);
1344   builder_.add_annotations(annotations);
1345   builder_.add_summary(summary);
1346   return builder_.Finish();
1347 }
1348 
1349 inline flatbuffers::Offset<Leg> CreateLegDirect(
1350     flatbuffers::FlatBufferBuilder &_fbb,
1351     double distance = 0.0,
1352     double duration = 0.0,
1353     double weight = 0.0,
1354     const char *summary = nullptr,
1355     flatbuffers::Offset<osrm::engine::api::fbresult::Annotation> annotations = 0,
1356     const std::vector<flatbuffers::Offset<osrm::engine::api::fbresult::Step>> *steps = nullptr) {
1357   auto summary__ = summary ? _fbb.CreateString(summary) : 0;
1358   auto steps__ = steps ? _fbb.CreateVector<flatbuffers::Offset<osrm::engine::api::fbresult::Step>>(*steps) : 0;
1359   return osrm::engine::api::fbresult::CreateLeg(
1360       _fbb,
1361       distance,
1362       duration,
1363       weight,
1364       summary__,
1365       annotations,
1366       steps__);
1367 }
1368 
1369 flatbuffers::Offset<Leg> CreateLeg(flatbuffers::FlatBufferBuilder &_fbb, const LegT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1370 
1371 struct RouteObjectT : public flatbuffers::NativeTable {
1372   typedef RouteObject TableType;
1373   float distance;
1374   float duration;
1375   float weight;
1376   std::string weight_name;
1377   float confidence;
1378   std::string polyline;
1379   std::vector<osrm::engine::api::fbresult::Position> coordinates;
1380   std::vector<std::unique_ptr<osrm::engine::api::fbresult::LegT>> legs;
RouteObjectTRouteObjectT1381   RouteObjectT()
1382       : distance(0.0f),
1383         duration(0.0f),
1384         weight(0.0f),
1385         confidence(0.0f) {
1386   }
1387 };
1388 
1389 struct RouteObject FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1390   typedef RouteObjectT NativeTableType;
1391   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1392     VT_DISTANCE = 4,
1393     VT_DURATION = 6,
1394     VT_WEIGHT = 8,
1395     VT_WEIGHT_NAME = 10,
1396     VT_CONFIDENCE = 12,
1397     VT_POLYLINE = 14,
1398     VT_COORDINATES = 16,
1399     VT_LEGS = 18
1400   };
distanceFLATBUFFERS_FINAL_CLASS1401   float distance() const {
1402     return GetField<float>(VT_DISTANCE, 0.0f);
1403   }
durationFLATBUFFERS_FINAL_CLASS1404   float duration() const {
1405     return GetField<float>(VT_DURATION, 0.0f);
1406   }
weightFLATBUFFERS_FINAL_CLASS1407   float weight() const {
1408     return GetField<float>(VT_WEIGHT, 0.0f);
1409   }
weight_nameFLATBUFFERS_FINAL_CLASS1410   const flatbuffers::String *weight_name() const {
1411     return GetPointer<const flatbuffers::String *>(VT_WEIGHT_NAME);
1412   }
confidenceFLATBUFFERS_FINAL_CLASS1413   float confidence() const {
1414     return GetField<float>(VT_CONFIDENCE, 0.0f);
1415   }
polylineFLATBUFFERS_FINAL_CLASS1416   const flatbuffers::String *polyline() const {
1417     return GetPointer<const flatbuffers::String *>(VT_POLYLINE);
1418   }
coordinatesFLATBUFFERS_FINAL_CLASS1419   const flatbuffers::Vector<const osrm::engine::api::fbresult::Position *> *coordinates() const {
1420     return GetPointer<const flatbuffers::Vector<const osrm::engine::api::fbresult::Position *> *>(VT_COORDINATES);
1421   }
legsFLATBUFFERS_FINAL_CLASS1422   const flatbuffers::Vector<flatbuffers::Offset<osrm::engine::api::fbresult::Leg>> *legs() const {
1423     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<osrm::engine::api::fbresult::Leg>> *>(VT_LEGS);
1424   }
VerifyFLATBUFFERS_FINAL_CLASS1425   bool Verify(flatbuffers::Verifier &verifier) const {
1426     return VerifyTableStart(verifier) &&
1427            VerifyField<float>(verifier, VT_DISTANCE) &&
1428            VerifyField<float>(verifier, VT_DURATION) &&
1429            VerifyField<float>(verifier, VT_WEIGHT) &&
1430            VerifyOffset(verifier, VT_WEIGHT_NAME) &&
1431            verifier.VerifyString(weight_name()) &&
1432            VerifyField<float>(verifier, VT_CONFIDENCE) &&
1433            VerifyOffset(verifier, VT_POLYLINE) &&
1434            verifier.VerifyString(polyline()) &&
1435            VerifyOffset(verifier, VT_COORDINATES) &&
1436            verifier.VerifyVector(coordinates()) &&
1437            VerifyOffset(verifier, VT_LEGS) &&
1438            verifier.VerifyVector(legs()) &&
1439            verifier.VerifyVectorOfTables(legs()) &&
1440            verifier.EndTable();
1441   }
1442   RouteObjectT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1443   void UnPackTo(RouteObjectT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1444   static flatbuffers::Offset<RouteObject> Pack(flatbuffers::FlatBufferBuilder &_fbb, const RouteObjectT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1445 };
1446 
1447 struct RouteObjectBuilder {
1448   flatbuffers::FlatBufferBuilder &fbb_;
1449   flatbuffers::uoffset_t start_;
add_distanceRouteObjectBuilder1450   void add_distance(float distance) {
1451     fbb_.AddElement<float>(RouteObject::VT_DISTANCE, distance, 0.0f);
1452   }
add_durationRouteObjectBuilder1453   void add_duration(float duration) {
1454     fbb_.AddElement<float>(RouteObject::VT_DURATION, duration, 0.0f);
1455   }
add_weightRouteObjectBuilder1456   void add_weight(float weight) {
1457     fbb_.AddElement<float>(RouteObject::VT_WEIGHT, weight, 0.0f);
1458   }
add_weight_nameRouteObjectBuilder1459   void add_weight_name(flatbuffers::Offset<flatbuffers::String> weight_name) {
1460     fbb_.AddOffset(RouteObject::VT_WEIGHT_NAME, weight_name);
1461   }
add_confidenceRouteObjectBuilder1462   void add_confidence(float confidence) {
1463     fbb_.AddElement<float>(RouteObject::VT_CONFIDENCE, confidence, 0.0f);
1464   }
add_polylineRouteObjectBuilder1465   void add_polyline(flatbuffers::Offset<flatbuffers::String> polyline) {
1466     fbb_.AddOffset(RouteObject::VT_POLYLINE, polyline);
1467   }
add_coordinatesRouteObjectBuilder1468   void add_coordinates(flatbuffers::Offset<flatbuffers::Vector<const osrm::engine::api::fbresult::Position *>> coordinates) {
1469     fbb_.AddOffset(RouteObject::VT_COORDINATES, coordinates);
1470   }
add_legsRouteObjectBuilder1471   void add_legs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<osrm::engine::api::fbresult::Leg>>> legs) {
1472     fbb_.AddOffset(RouteObject::VT_LEGS, legs);
1473   }
RouteObjectBuilderRouteObjectBuilder1474   explicit RouteObjectBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1475         : fbb_(_fbb) {
1476     start_ = fbb_.StartTable();
1477   }
1478   RouteObjectBuilder &operator=(const RouteObjectBuilder &);
FinishRouteObjectBuilder1479   flatbuffers::Offset<RouteObject> Finish() {
1480     const auto end = fbb_.EndTable(start_);
1481     auto o = flatbuffers::Offset<RouteObject>(end);
1482     return o;
1483   }
1484 };
1485 
1486 inline flatbuffers::Offset<RouteObject> CreateRouteObject(
1487     flatbuffers::FlatBufferBuilder &_fbb,
1488     float distance = 0.0f,
1489     float duration = 0.0f,
1490     float weight = 0.0f,
1491     flatbuffers::Offset<flatbuffers::String> weight_name = 0,
1492     float confidence = 0.0f,
1493     flatbuffers::Offset<flatbuffers::String> polyline = 0,
1494     flatbuffers::Offset<flatbuffers::Vector<const osrm::engine::api::fbresult::Position *>> coordinates = 0,
1495     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<osrm::engine::api::fbresult::Leg>>> legs = 0) {
1496   RouteObjectBuilder builder_(_fbb);
1497   builder_.add_legs(legs);
1498   builder_.add_coordinates(coordinates);
1499   builder_.add_polyline(polyline);
1500   builder_.add_confidence(confidence);
1501   builder_.add_weight_name(weight_name);
1502   builder_.add_weight(weight);
1503   builder_.add_duration(duration);
1504   builder_.add_distance(distance);
1505   return builder_.Finish();
1506 }
1507 
1508 inline flatbuffers::Offset<RouteObject> CreateRouteObjectDirect(
1509     flatbuffers::FlatBufferBuilder &_fbb,
1510     float distance = 0.0f,
1511     float duration = 0.0f,
1512     float weight = 0.0f,
1513     const char *weight_name = nullptr,
1514     float confidence = 0.0f,
1515     const char *polyline = nullptr,
1516     const std::vector<osrm::engine::api::fbresult::Position> *coordinates = nullptr,
1517     const std::vector<flatbuffers::Offset<osrm::engine::api::fbresult::Leg>> *legs = nullptr) {
1518   auto weight_name__ = weight_name ? _fbb.CreateString(weight_name) : 0;
1519   auto polyline__ = polyline ? _fbb.CreateString(polyline) : 0;
1520   auto coordinates__ = coordinates ? _fbb.CreateVectorOfStructs<osrm::engine::api::fbresult::Position>(*coordinates) : 0;
1521   auto legs__ = legs ? _fbb.CreateVector<flatbuffers::Offset<osrm::engine::api::fbresult::Leg>>(*legs) : 0;
1522   return osrm::engine::api::fbresult::CreateRouteObject(
1523       _fbb,
1524       distance,
1525       duration,
1526       weight,
1527       weight_name__,
1528       confidence,
1529       polyline__,
1530       coordinates__,
1531       legs__);
1532 }
1533 
1534 flatbuffers::Offset<RouteObject> CreateRouteObject(flatbuffers::FlatBufferBuilder &_fbb, const RouteObjectT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1535 
1536 struct TableT : public flatbuffers::NativeTable {
1537   typedef Table TableType;
1538   std::vector<float> durations;
1539   uint16_t rows;
1540   uint16_t cols;
1541   std::vector<float> distances;
1542   std::vector<std::unique_ptr<osrm::engine::api::fbresult::WaypointT>> destinations;
1543   std::vector<uint32_t> fallback_speed_cells;
TableTTableT1544   TableT()
1545       : rows(0),
1546         cols(0) {
1547   }
1548 };
1549 
1550 struct Table FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1551   typedef TableT NativeTableType;
1552   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1553     VT_DURATIONS = 4,
1554     VT_ROWS = 6,
1555     VT_COLS = 8,
1556     VT_DISTANCES = 10,
1557     VT_DESTINATIONS = 12,
1558     VT_FALLBACK_SPEED_CELLS = 14
1559   };
durationsFLATBUFFERS_FINAL_CLASS1560   const flatbuffers::Vector<float> *durations() const {
1561     return GetPointer<const flatbuffers::Vector<float> *>(VT_DURATIONS);
1562   }
rowsFLATBUFFERS_FINAL_CLASS1563   uint16_t rows() const {
1564     return GetField<uint16_t>(VT_ROWS, 0);
1565   }
colsFLATBUFFERS_FINAL_CLASS1566   uint16_t cols() const {
1567     return GetField<uint16_t>(VT_COLS, 0);
1568   }
distancesFLATBUFFERS_FINAL_CLASS1569   const flatbuffers::Vector<float> *distances() const {
1570     return GetPointer<const flatbuffers::Vector<float> *>(VT_DISTANCES);
1571   }
destinationsFLATBUFFERS_FINAL_CLASS1572   const flatbuffers::Vector<flatbuffers::Offset<osrm::engine::api::fbresult::Waypoint>> *destinations() const {
1573     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<osrm::engine::api::fbresult::Waypoint>> *>(VT_DESTINATIONS);
1574   }
fallback_speed_cellsFLATBUFFERS_FINAL_CLASS1575   const flatbuffers::Vector<uint32_t> *fallback_speed_cells() const {
1576     return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_FALLBACK_SPEED_CELLS);
1577   }
VerifyFLATBUFFERS_FINAL_CLASS1578   bool Verify(flatbuffers::Verifier &verifier) const {
1579     return VerifyTableStart(verifier) &&
1580            VerifyOffset(verifier, VT_DURATIONS) &&
1581            verifier.VerifyVector(durations()) &&
1582            VerifyField<uint16_t>(verifier, VT_ROWS) &&
1583            VerifyField<uint16_t>(verifier, VT_COLS) &&
1584            VerifyOffset(verifier, VT_DISTANCES) &&
1585            verifier.VerifyVector(distances()) &&
1586            VerifyOffset(verifier, VT_DESTINATIONS) &&
1587            verifier.VerifyVector(destinations()) &&
1588            verifier.VerifyVectorOfTables(destinations()) &&
1589            VerifyOffset(verifier, VT_FALLBACK_SPEED_CELLS) &&
1590            verifier.VerifyVector(fallback_speed_cells()) &&
1591            verifier.EndTable();
1592   }
1593   TableT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1594   void UnPackTo(TableT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1595   static flatbuffers::Offset<Table> Pack(flatbuffers::FlatBufferBuilder &_fbb, const TableT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1596 };
1597 
1598 struct TableBuilder {
1599   flatbuffers::FlatBufferBuilder &fbb_;
1600   flatbuffers::uoffset_t start_;
add_durationsTableBuilder1601   void add_durations(flatbuffers::Offset<flatbuffers::Vector<float>> durations) {
1602     fbb_.AddOffset(Table::VT_DURATIONS, durations);
1603   }
add_rowsTableBuilder1604   void add_rows(uint16_t rows) {
1605     fbb_.AddElement<uint16_t>(Table::VT_ROWS, rows, 0);
1606   }
add_colsTableBuilder1607   void add_cols(uint16_t cols) {
1608     fbb_.AddElement<uint16_t>(Table::VT_COLS, cols, 0);
1609   }
add_distancesTableBuilder1610   void add_distances(flatbuffers::Offset<flatbuffers::Vector<float>> distances) {
1611     fbb_.AddOffset(Table::VT_DISTANCES, distances);
1612   }
add_destinationsTableBuilder1613   void add_destinations(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<osrm::engine::api::fbresult::Waypoint>>> destinations) {
1614     fbb_.AddOffset(Table::VT_DESTINATIONS, destinations);
1615   }
add_fallback_speed_cellsTableBuilder1616   void add_fallback_speed_cells(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> fallback_speed_cells) {
1617     fbb_.AddOffset(Table::VT_FALLBACK_SPEED_CELLS, fallback_speed_cells);
1618   }
TableBuilderTableBuilder1619   explicit TableBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1620         : fbb_(_fbb) {
1621     start_ = fbb_.StartTable();
1622   }
1623   TableBuilder &operator=(const TableBuilder &);
FinishTableBuilder1624   flatbuffers::Offset<Table> Finish() {
1625     const auto end = fbb_.EndTable(start_);
1626     auto o = flatbuffers::Offset<Table>(end);
1627     return o;
1628   }
1629 };
1630 
1631 inline flatbuffers::Offset<Table> CreateTable(
1632     flatbuffers::FlatBufferBuilder &_fbb,
1633     flatbuffers::Offset<flatbuffers::Vector<float>> durations = 0,
1634     uint16_t rows = 0,
1635     uint16_t cols = 0,
1636     flatbuffers::Offset<flatbuffers::Vector<float>> distances = 0,
1637     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<osrm::engine::api::fbresult::Waypoint>>> destinations = 0,
1638     flatbuffers::Offset<flatbuffers::Vector<uint32_t>> fallback_speed_cells = 0) {
1639   TableBuilder builder_(_fbb);
1640   builder_.add_fallback_speed_cells(fallback_speed_cells);
1641   builder_.add_destinations(destinations);
1642   builder_.add_distances(distances);
1643   builder_.add_durations(durations);
1644   builder_.add_cols(cols);
1645   builder_.add_rows(rows);
1646   return builder_.Finish();
1647 }
1648 
1649 inline flatbuffers::Offset<Table> CreateTableDirect(
1650     flatbuffers::FlatBufferBuilder &_fbb,
1651     const std::vector<float> *durations = nullptr,
1652     uint16_t rows = 0,
1653     uint16_t cols = 0,
1654     const std::vector<float> *distances = nullptr,
1655     const std::vector<flatbuffers::Offset<osrm::engine::api::fbresult::Waypoint>> *destinations = nullptr,
1656     const std::vector<uint32_t> *fallback_speed_cells = nullptr) {
1657   auto durations__ = durations ? _fbb.CreateVector<float>(*durations) : 0;
1658   auto distances__ = distances ? _fbb.CreateVector<float>(*distances) : 0;
1659   auto destinations__ = destinations ? _fbb.CreateVector<flatbuffers::Offset<osrm::engine::api::fbresult::Waypoint>>(*destinations) : 0;
1660   auto fallback_speed_cells__ = fallback_speed_cells ? _fbb.CreateVector<uint32_t>(*fallback_speed_cells) : 0;
1661   return osrm::engine::api::fbresult::CreateTable(
1662       _fbb,
1663       durations__,
1664       rows,
1665       cols,
1666       distances__,
1667       destinations__,
1668       fallback_speed_cells__);
1669 }
1670 
1671 flatbuffers::Offset<Table> CreateTable(flatbuffers::FlatBufferBuilder &_fbb, const TableT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1672 
1673 struct ErrorT : public flatbuffers::NativeTable {
1674   typedef Error TableType;
1675   std::string code;
1676   std::string message;
ErrorTErrorT1677   ErrorT() {
1678   }
1679 };
1680 
1681 struct Error FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1682   typedef ErrorT NativeTableType;
1683   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1684     VT_CODE = 4,
1685     VT_MESSAGE = 6
1686   };
codeFLATBUFFERS_FINAL_CLASS1687   const flatbuffers::String *code() const {
1688     return GetPointer<const flatbuffers::String *>(VT_CODE);
1689   }
messageFLATBUFFERS_FINAL_CLASS1690   const flatbuffers::String *message() const {
1691     return GetPointer<const flatbuffers::String *>(VT_MESSAGE);
1692   }
VerifyFLATBUFFERS_FINAL_CLASS1693   bool Verify(flatbuffers::Verifier &verifier) const {
1694     return VerifyTableStart(verifier) &&
1695            VerifyOffset(verifier, VT_CODE) &&
1696            verifier.VerifyString(code()) &&
1697            VerifyOffset(verifier, VT_MESSAGE) &&
1698            verifier.VerifyString(message()) &&
1699            verifier.EndTable();
1700   }
1701   ErrorT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1702   void UnPackTo(ErrorT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1703   static flatbuffers::Offset<Error> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ErrorT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1704 };
1705 
1706 struct ErrorBuilder {
1707   flatbuffers::FlatBufferBuilder &fbb_;
1708   flatbuffers::uoffset_t start_;
add_codeErrorBuilder1709   void add_code(flatbuffers::Offset<flatbuffers::String> code) {
1710     fbb_.AddOffset(Error::VT_CODE, code);
1711   }
add_messageErrorBuilder1712   void add_message(flatbuffers::Offset<flatbuffers::String> message) {
1713     fbb_.AddOffset(Error::VT_MESSAGE, message);
1714   }
ErrorBuilderErrorBuilder1715   explicit ErrorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1716         : fbb_(_fbb) {
1717     start_ = fbb_.StartTable();
1718   }
1719   ErrorBuilder &operator=(const ErrorBuilder &);
FinishErrorBuilder1720   flatbuffers::Offset<Error> Finish() {
1721     const auto end = fbb_.EndTable(start_);
1722     auto o = flatbuffers::Offset<Error>(end);
1723     return o;
1724   }
1725 };
1726 
1727 inline flatbuffers::Offset<Error> CreateError(
1728     flatbuffers::FlatBufferBuilder &_fbb,
1729     flatbuffers::Offset<flatbuffers::String> code = 0,
1730     flatbuffers::Offset<flatbuffers::String> message = 0) {
1731   ErrorBuilder builder_(_fbb);
1732   builder_.add_message(message);
1733   builder_.add_code(code);
1734   return builder_.Finish();
1735 }
1736 
1737 inline flatbuffers::Offset<Error> CreateErrorDirect(
1738     flatbuffers::FlatBufferBuilder &_fbb,
1739     const char *code = nullptr,
1740     const char *message = nullptr) {
1741   auto code__ = code ? _fbb.CreateString(code) : 0;
1742   auto message__ = message ? _fbb.CreateString(message) : 0;
1743   return osrm::engine::api::fbresult::CreateError(
1744       _fbb,
1745       code__,
1746       message__);
1747 }
1748 
1749 flatbuffers::Offset<Error> CreateError(flatbuffers::FlatBufferBuilder &_fbb, const ErrorT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1750 
1751 struct FBResultT : public flatbuffers::NativeTable {
1752   typedef FBResult TableType;
1753   bool error;
1754   std::unique_ptr<osrm::engine::api::fbresult::ErrorT> code;
1755   std::string data_version;
1756   std::vector<std::unique_ptr<osrm::engine::api::fbresult::WaypointT>> waypoints;
1757   std::vector<std::unique_ptr<osrm::engine::api::fbresult::RouteObjectT>> routes;
1758   std::unique_ptr<osrm::engine::api::fbresult::TableT> table;
FBResultTFBResultT1759   FBResultT()
1760       : error(false) {
1761   }
1762 };
1763 
1764 struct FBResult FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1765   typedef FBResultT NativeTableType;
1766   enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1767     VT_ERROR = 4,
1768     VT_CODE = 6,
1769     VT_DATA_VERSION = 8,
1770     VT_WAYPOINTS = 10,
1771     VT_ROUTES = 12,
1772     VT_TABLE = 14
1773   };
errorFLATBUFFERS_FINAL_CLASS1774   bool error() const {
1775     return GetField<uint8_t>(VT_ERROR, 0) != 0;
1776   }
codeFLATBUFFERS_FINAL_CLASS1777   const osrm::engine::api::fbresult::Error *code() const {
1778     return GetPointer<const osrm::engine::api::fbresult::Error *>(VT_CODE);
1779   }
data_versionFLATBUFFERS_FINAL_CLASS1780   const flatbuffers::String *data_version() const {
1781     return GetPointer<const flatbuffers::String *>(VT_DATA_VERSION);
1782   }
waypointsFLATBUFFERS_FINAL_CLASS1783   const flatbuffers::Vector<flatbuffers::Offset<osrm::engine::api::fbresult::Waypoint>> *waypoints() const {
1784     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<osrm::engine::api::fbresult::Waypoint>> *>(VT_WAYPOINTS);
1785   }
routesFLATBUFFERS_FINAL_CLASS1786   const flatbuffers::Vector<flatbuffers::Offset<osrm::engine::api::fbresult::RouteObject>> *routes() const {
1787     return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<osrm::engine::api::fbresult::RouteObject>> *>(VT_ROUTES);
1788   }
tableFLATBUFFERS_FINAL_CLASS1789   const osrm::engine::api::fbresult::Table *table() const {
1790     return GetPointer<const osrm::engine::api::fbresult::Table *>(VT_TABLE);
1791   }
VerifyFLATBUFFERS_FINAL_CLASS1792   bool Verify(flatbuffers::Verifier &verifier) const {
1793     return VerifyTableStart(verifier) &&
1794            VerifyField<uint8_t>(verifier, VT_ERROR) &&
1795            VerifyOffset(verifier, VT_CODE) &&
1796            verifier.VerifyTable(code()) &&
1797            VerifyOffset(verifier, VT_DATA_VERSION) &&
1798            verifier.VerifyString(data_version()) &&
1799            VerifyOffset(verifier, VT_WAYPOINTS) &&
1800            verifier.VerifyVector(waypoints()) &&
1801            verifier.VerifyVectorOfTables(waypoints()) &&
1802            VerifyOffset(verifier, VT_ROUTES) &&
1803            verifier.VerifyVector(routes()) &&
1804            verifier.VerifyVectorOfTables(routes()) &&
1805            VerifyOffset(verifier, VT_TABLE) &&
1806            verifier.VerifyTable(table()) &&
1807            verifier.EndTable();
1808   }
1809   FBResultT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1810   void UnPackTo(FBResultT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1811   static flatbuffers::Offset<FBResult> Pack(flatbuffers::FlatBufferBuilder &_fbb, const FBResultT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1812 };
1813 
1814 struct FBResultBuilder {
1815   flatbuffers::FlatBufferBuilder &fbb_;
1816   flatbuffers::uoffset_t start_;
add_errorFBResultBuilder1817   void add_error(bool error) {
1818     fbb_.AddElement<uint8_t>(FBResult::VT_ERROR, static_cast<uint8_t>(error), 0);
1819   }
add_codeFBResultBuilder1820   void add_code(flatbuffers::Offset<osrm::engine::api::fbresult::Error> code) {
1821     fbb_.AddOffset(FBResult::VT_CODE, code);
1822   }
add_data_versionFBResultBuilder1823   void add_data_version(flatbuffers::Offset<flatbuffers::String> data_version) {
1824     fbb_.AddOffset(FBResult::VT_DATA_VERSION, data_version);
1825   }
add_waypointsFBResultBuilder1826   void add_waypoints(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<osrm::engine::api::fbresult::Waypoint>>> waypoints) {
1827     fbb_.AddOffset(FBResult::VT_WAYPOINTS, waypoints);
1828   }
add_routesFBResultBuilder1829   void add_routes(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<osrm::engine::api::fbresult::RouteObject>>> routes) {
1830     fbb_.AddOffset(FBResult::VT_ROUTES, routes);
1831   }
add_tableFBResultBuilder1832   void add_table(flatbuffers::Offset<osrm::engine::api::fbresult::Table> table) {
1833     fbb_.AddOffset(FBResult::VT_TABLE, table);
1834   }
FBResultBuilderFBResultBuilder1835   explicit FBResultBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1836         : fbb_(_fbb) {
1837     start_ = fbb_.StartTable();
1838   }
1839   FBResultBuilder &operator=(const FBResultBuilder &);
FinishFBResultBuilder1840   flatbuffers::Offset<FBResult> Finish() {
1841     const auto end = fbb_.EndTable(start_);
1842     auto o = flatbuffers::Offset<FBResult>(end);
1843     return o;
1844   }
1845 };
1846 
1847 inline flatbuffers::Offset<FBResult> CreateFBResult(
1848     flatbuffers::FlatBufferBuilder &_fbb,
1849     bool error = false,
1850     flatbuffers::Offset<osrm::engine::api::fbresult::Error> code = 0,
1851     flatbuffers::Offset<flatbuffers::String> data_version = 0,
1852     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<osrm::engine::api::fbresult::Waypoint>>> waypoints = 0,
1853     flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<osrm::engine::api::fbresult::RouteObject>>> routes = 0,
1854     flatbuffers::Offset<osrm::engine::api::fbresult::Table> table = 0) {
1855   FBResultBuilder builder_(_fbb);
1856   builder_.add_table(table);
1857   builder_.add_routes(routes);
1858   builder_.add_waypoints(waypoints);
1859   builder_.add_data_version(data_version);
1860   builder_.add_code(code);
1861   builder_.add_error(error);
1862   return builder_.Finish();
1863 }
1864 
1865 inline flatbuffers::Offset<FBResult> CreateFBResultDirect(
1866     flatbuffers::FlatBufferBuilder &_fbb,
1867     bool error = false,
1868     flatbuffers::Offset<osrm::engine::api::fbresult::Error> code = 0,
1869     const char *data_version = nullptr,
1870     const std::vector<flatbuffers::Offset<osrm::engine::api::fbresult::Waypoint>> *waypoints = nullptr,
1871     const std::vector<flatbuffers::Offset<osrm::engine::api::fbresult::RouteObject>> *routes = nullptr,
1872     flatbuffers::Offset<osrm::engine::api::fbresult::Table> table = 0) {
1873   auto data_version__ = data_version ? _fbb.CreateString(data_version) : 0;
1874   auto waypoints__ = waypoints ? _fbb.CreateVector<flatbuffers::Offset<osrm::engine::api::fbresult::Waypoint>>(*waypoints) : 0;
1875   auto routes__ = routes ? _fbb.CreateVector<flatbuffers::Offset<osrm::engine::api::fbresult::RouteObject>>(*routes) : 0;
1876   return osrm::engine::api::fbresult::CreateFBResult(
1877       _fbb,
1878       error,
1879       code,
1880       data_version__,
1881       waypoints__,
1882       routes__,
1883       table);
1884 }
1885 
1886 flatbuffers::Offset<FBResult> CreateFBResult(flatbuffers::FlatBufferBuilder &_fbb, const FBResultT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1887 
UnPack(const flatbuffers::resolver_function_t * _resolver)1888 inline WaypointT *Waypoint::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
1889   auto _o = new WaypointT();
1890   UnPackTo(_o, _resolver);
1891   return _o;
1892 }
1893 
UnPackTo(WaypointT * _o,const flatbuffers::resolver_function_t * _resolver)1894 inline void Waypoint::UnPackTo(WaypointT *_o, const flatbuffers::resolver_function_t *_resolver) const {
1895   (void)_o;
1896   (void)_resolver;
1897   { auto _e = hint(); if (_e) _o->hint = _e->str(); };
1898   { auto _e = distance(); _o->distance = _e; };
1899   { auto _e = name(); if (_e) _o->name = _e->str(); };
1900   { auto _e = location(); if (_e) _o->location = std::unique_ptr<osrm::engine::api::fbresult::Position>(new osrm::engine::api::fbresult::Position(*_e)); };
1901   { auto _e = nodes(); if (_e) _o->nodes = std::unique_ptr<osrm::engine::api::fbresult::Uint64Pair>(new osrm::engine::api::fbresult::Uint64Pair(*_e)); };
1902   { auto _e = matchings_index(); _o->matchings_index = _e; };
1903   { auto _e = waypoint_index(); _o->waypoint_index = _e; };
1904   { auto _e = alternatives_count(); _o->alternatives_count = _e; };
1905   { auto _e = trips_index(); _o->trips_index = _e; };
1906 }
1907 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const WaypointT * _o,const flatbuffers::rehasher_function_t * _rehasher)1908 inline flatbuffers::Offset<Waypoint> Waypoint::Pack(flatbuffers::FlatBufferBuilder &_fbb, const WaypointT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
1909   return CreateWaypoint(_fbb, _o, _rehasher);
1910 }
1911 
CreateWaypoint(flatbuffers::FlatBufferBuilder & _fbb,const WaypointT * _o,const flatbuffers::rehasher_function_t * _rehasher)1912 inline flatbuffers::Offset<Waypoint> CreateWaypoint(flatbuffers::FlatBufferBuilder &_fbb, const WaypointT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
1913   (void)_rehasher;
1914   (void)_o;
1915   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const WaypointT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
1916   auto _hint = _o->hint.empty() ? 0 : _fbb.CreateString(_o->hint);
1917   auto _distance = _o->distance;
1918   auto _name = _o->name.empty() ? 0 : _fbb.CreateString(_o->name);
1919   auto _location = _o->location ? _o->location.get() : 0;
1920   auto _nodes = _o->nodes ? _o->nodes.get() : 0;
1921   auto _matchings_index = _o->matchings_index;
1922   auto _waypoint_index = _o->waypoint_index;
1923   auto _alternatives_count = _o->alternatives_count;
1924   auto _trips_index = _o->trips_index;
1925   return osrm::engine::api::fbresult::CreateWaypoint(
1926       _fbb,
1927       _hint,
1928       _distance,
1929       _name,
1930       _location,
1931       _nodes,
1932       _matchings_index,
1933       _waypoint_index,
1934       _alternatives_count,
1935       _trips_index);
1936 }
1937 
UnPack(const flatbuffers::resolver_function_t * _resolver)1938 inline MetadataT *Metadata::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
1939   auto _o = new MetadataT();
1940   UnPackTo(_o, _resolver);
1941   return _o;
1942 }
1943 
UnPackTo(MetadataT * _o,const flatbuffers::resolver_function_t * _resolver)1944 inline void Metadata::UnPackTo(MetadataT *_o, const flatbuffers::resolver_function_t *_resolver) const {
1945   (void)_o;
1946   (void)_resolver;
1947   { auto _e = datasource_names(); if (_e) { _o->datasource_names.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->datasource_names[_i] = _e->Get(_i)->str(); } } };
1948 }
1949 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const MetadataT * _o,const flatbuffers::rehasher_function_t * _rehasher)1950 inline flatbuffers::Offset<Metadata> Metadata::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MetadataT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
1951   return CreateMetadata(_fbb, _o, _rehasher);
1952 }
1953 
CreateMetadata(flatbuffers::FlatBufferBuilder & _fbb,const MetadataT * _o,const flatbuffers::rehasher_function_t * _rehasher)1954 inline flatbuffers::Offset<Metadata> CreateMetadata(flatbuffers::FlatBufferBuilder &_fbb, const MetadataT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
1955   (void)_rehasher;
1956   (void)_o;
1957   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const MetadataT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
1958   auto _datasource_names = _o->datasource_names.size() ? _fbb.CreateVectorOfStrings(_o->datasource_names) : 0;
1959   return osrm::engine::api::fbresult::CreateMetadata(
1960       _fbb,
1961       _datasource_names);
1962 }
1963 
UnPack(const flatbuffers::resolver_function_t * _resolver)1964 inline AnnotationT *Annotation::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
1965   auto _o = new AnnotationT();
1966   UnPackTo(_o, _resolver);
1967   return _o;
1968 }
1969 
UnPackTo(AnnotationT * _o,const flatbuffers::resolver_function_t * _resolver)1970 inline void Annotation::UnPackTo(AnnotationT *_o, const flatbuffers::resolver_function_t *_resolver) const {
1971   (void)_o;
1972   (void)_resolver;
1973   { auto _e = distance(); if (_e) { _o->distance.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->distance[_i] = _e->Get(_i); } } };
1974   { auto _e = duration(); if (_e) { _o->duration.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->duration[_i] = _e->Get(_i); } } };
1975   { auto _e = datasources(); if (_e) { _o->datasources.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->datasources[_i] = _e->Get(_i); } } };
1976   { auto _e = nodes(); if (_e) { _o->nodes.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->nodes[_i] = _e->Get(_i); } } };
1977   { auto _e = weight(); if (_e) { _o->weight.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->weight[_i] = _e->Get(_i); } } };
1978   { auto _e = speed(); if (_e) { _o->speed.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->speed[_i] = _e->Get(_i); } } };
1979   { auto _e = metadata(); if (_e) _o->metadata = std::unique_ptr<osrm::engine::api::fbresult::MetadataT>(_e->UnPack(_resolver)); };
1980 }
1981 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const AnnotationT * _o,const flatbuffers::rehasher_function_t * _rehasher)1982 inline flatbuffers::Offset<Annotation> Annotation::Pack(flatbuffers::FlatBufferBuilder &_fbb, const AnnotationT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
1983   return CreateAnnotation(_fbb, _o, _rehasher);
1984 }
1985 
CreateAnnotation(flatbuffers::FlatBufferBuilder & _fbb,const AnnotationT * _o,const flatbuffers::rehasher_function_t * _rehasher)1986 inline flatbuffers::Offset<Annotation> CreateAnnotation(flatbuffers::FlatBufferBuilder &_fbb, const AnnotationT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
1987   (void)_rehasher;
1988   (void)_o;
1989   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const AnnotationT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
1990   auto _distance = _o->distance.size() ? _fbb.CreateVector(_o->distance) : 0;
1991   auto _duration = _o->duration.size() ? _fbb.CreateVector(_o->duration) : 0;
1992   auto _datasources = _o->datasources.size() ? _fbb.CreateVector(_o->datasources) : 0;
1993   auto _nodes = _o->nodes.size() ? _fbb.CreateVector(_o->nodes) : 0;
1994   auto _weight = _o->weight.size() ? _fbb.CreateVector(_o->weight) : 0;
1995   auto _speed = _o->speed.size() ? _fbb.CreateVector(_o->speed) : 0;
1996   auto _metadata = _o->metadata ? CreateMetadata(_fbb, _o->metadata.get(), _rehasher) : 0;
1997   return osrm::engine::api::fbresult::CreateAnnotation(
1998       _fbb,
1999       _distance,
2000       _duration,
2001       _datasources,
2002       _nodes,
2003       _weight,
2004       _speed,
2005       _metadata);
2006 }
2007 
UnPack(const flatbuffers::resolver_function_t * _resolver)2008 inline StepManeuverT *StepManeuver::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
2009   auto _o = new StepManeuverT();
2010   UnPackTo(_o, _resolver);
2011   return _o;
2012 }
2013 
UnPackTo(StepManeuverT * _o,const flatbuffers::resolver_function_t * _resolver)2014 inline void StepManeuver::UnPackTo(StepManeuverT *_o, const flatbuffers::resolver_function_t *_resolver) const {
2015   (void)_o;
2016   (void)_resolver;
2017   { auto _e = location(); if (_e) _o->location = std::unique_ptr<osrm::engine::api::fbresult::Position>(new osrm::engine::api::fbresult::Position(*_e)); };
2018   { auto _e = bearing_before(); _o->bearing_before = _e; };
2019   { auto _e = bearing_after(); _o->bearing_after = _e; };
2020   { auto _e = type(); _o->type = _e; };
2021   { auto _e = modifier(); _o->modifier = _e; };
2022   { auto _e = exit(); _o->exit = _e; };
2023 }
2024 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const StepManeuverT * _o,const flatbuffers::rehasher_function_t * _rehasher)2025 inline flatbuffers::Offset<StepManeuver> StepManeuver::Pack(flatbuffers::FlatBufferBuilder &_fbb, const StepManeuverT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
2026   return CreateStepManeuver(_fbb, _o, _rehasher);
2027 }
2028 
CreateStepManeuver(flatbuffers::FlatBufferBuilder & _fbb,const StepManeuverT * _o,const flatbuffers::rehasher_function_t * _rehasher)2029 inline flatbuffers::Offset<StepManeuver> CreateStepManeuver(flatbuffers::FlatBufferBuilder &_fbb, const StepManeuverT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
2030   (void)_rehasher;
2031   (void)_o;
2032   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const StepManeuverT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
2033   auto _location = _o->location ? _o->location.get() : 0;
2034   auto _bearing_before = _o->bearing_before;
2035   auto _bearing_after = _o->bearing_after;
2036   auto _type = _o->type;
2037   auto _modifier = _o->modifier;
2038   auto _exit = _o->exit;
2039   return osrm::engine::api::fbresult::CreateStepManeuver(
2040       _fbb,
2041       _location,
2042       _bearing_before,
2043       _bearing_after,
2044       _type,
2045       _modifier,
2046       _exit);
2047 }
2048 
UnPack(const flatbuffers::resolver_function_t * _resolver)2049 inline LaneT *Lane::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
2050   auto _o = new LaneT();
2051   UnPackTo(_o, _resolver);
2052   return _o;
2053 }
2054 
UnPackTo(LaneT * _o,const flatbuffers::resolver_function_t * _resolver)2055 inline void Lane::UnPackTo(LaneT *_o, const flatbuffers::resolver_function_t *_resolver) const {
2056   (void)_o;
2057   (void)_resolver;
2058   { auto _e = indications(); if (_e) { _o->indications.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->indications[_i] = static_cast<osrm::engine::api::fbresult::Turn>(_e->Get(_i)); } } };
2059   { auto _e = valid(); _o->valid = _e; };
2060 }
2061 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const LaneT * _o,const flatbuffers::rehasher_function_t * _rehasher)2062 inline flatbuffers::Offset<Lane> Lane::Pack(flatbuffers::FlatBufferBuilder &_fbb, const LaneT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
2063   return CreateLane(_fbb, _o, _rehasher);
2064 }
2065 
CreateLane(flatbuffers::FlatBufferBuilder & _fbb,const LaneT * _o,const flatbuffers::rehasher_function_t * _rehasher)2066 inline flatbuffers::Offset<Lane> CreateLane(flatbuffers::FlatBufferBuilder &_fbb, const LaneT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
2067   (void)_rehasher;
2068   (void)_o;
2069   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const LaneT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
2070   auto _indications = _o->indications.size() ? _fbb.CreateVectorScalarCast<int8_t>(flatbuffers::data(_o->indications), _o->indications.size()) : 0;
2071   auto _valid = _o->valid;
2072   return osrm::engine::api::fbresult::CreateLane(
2073       _fbb,
2074       _indications,
2075       _valid);
2076 }
2077 
UnPack(const flatbuffers::resolver_function_t * _resolver)2078 inline IntersectionT *Intersection::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
2079   auto _o = new IntersectionT();
2080   UnPackTo(_o, _resolver);
2081   return _o;
2082 }
2083 
UnPackTo(IntersectionT * _o,const flatbuffers::resolver_function_t * _resolver)2084 inline void Intersection::UnPackTo(IntersectionT *_o, const flatbuffers::resolver_function_t *_resolver) const {
2085   (void)_o;
2086   (void)_resolver;
2087   { auto _e = location(); if (_e) _o->location = std::unique_ptr<osrm::engine::api::fbresult::Position>(new osrm::engine::api::fbresult::Position(*_e)); };
2088   { auto _e = bearings(); if (_e) { _o->bearings.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->bearings[_i] = _e->Get(_i); } } };
2089   { auto _e = classes(); if (_e) { _o->classes.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->classes[_i] = _e->Get(_i)->str(); } } };
2090   { auto _e = entry(); if (_e) { _o->entry.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->entry[_i] = _e->Get(_i) != 0; } } };
2091   { auto _e = in_bearing(); _o->in_bearing = _e; };
2092   { auto _e = out_bearing(); _o->out_bearing = _e; };
2093   { auto _e = lanes(); if (_e) { _o->lanes.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->lanes[_i] = std::unique_ptr<osrm::engine::api::fbresult::LaneT>(_e->Get(_i)->UnPack(_resolver)); } } };
2094 }
2095 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const IntersectionT * _o,const flatbuffers::rehasher_function_t * _rehasher)2096 inline flatbuffers::Offset<Intersection> Intersection::Pack(flatbuffers::FlatBufferBuilder &_fbb, const IntersectionT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
2097   return CreateIntersection(_fbb, _o, _rehasher);
2098 }
2099 
CreateIntersection(flatbuffers::FlatBufferBuilder & _fbb,const IntersectionT * _o,const flatbuffers::rehasher_function_t * _rehasher)2100 inline flatbuffers::Offset<Intersection> CreateIntersection(flatbuffers::FlatBufferBuilder &_fbb, const IntersectionT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
2101   (void)_rehasher;
2102   (void)_o;
2103   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const IntersectionT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
2104   auto _location = _o->location ? _o->location.get() : 0;
2105   auto _bearings = _o->bearings.size() ? _fbb.CreateVector(_o->bearings) : 0;
2106   auto _classes = _o->classes.size() ? _fbb.CreateVectorOfStrings(_o->classes) : 0;
2107   auto _entry = _o->entry.size() ? _fbb.CreateVector(_o->entry) : 0;
2108   auto _in_bearing = _o->in_bearing;
2109   auto _out_bearing = _o->out_bearing;
2110   auto _lanes = _o->lanes.size() ? _fbb.CreateVector<flatbuffers::Offset<osrm::engine::api::fbresult::Lane>> (_o->lanes.size(), [](size_t i, _VectorArgs *__va) { return CreateLane(*__va->__fbb, __va->__o->lanes[i].get(), __va->__rehasher); }, &_va ) : 0;
2111   return osrm::engine::api::fbresult::CreateIntersection(
2112       _fbb,
2113       _location,
2114       _bearings,
2115       _classes,
2116       _entry,
2117       _in_bearing,
2118       _out_bearing,
2119       _lanes);
2120 }
2121 
UnPack(const flatbuffers::resolver_function_t * _resolver)2122 inline StepT *Step::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
2123   auto _o = new StepT();
2124   UnPackTo(_o, _resolver);
2125   return _o;
2126 }
2127 
UnPackTo(StepT * _o,const flatbuffers::resolver_function_t * _resolver)2128 inline void Step::UnPackTo(StepT *_o, const flatbuffers::resolver_function_t *_resolver) const {
2129   (void)_o;
2130   (void)_resolver;
2131   { auto _e = distance(); _o->distance = _e; };
2132   { auto _e = duration(); _o->duration = _e; };
2133   { auto _e = polyline(); if (_e) _o->polyline = _e->str(); };
2134   { auto _e = coordinates(); if (_e) { _o->coordinates.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->coordinates[_i] = *_e->Get(_i); } } };
2135   { auto _e = weight(); _o->weight = _e; };
2136   { auto _e = name(); if (_e) _o->name = _e->str(); };
2137   { auto _e = ref(); if (_e) _o->ref = _e->str(); };
2138   { auto _e = pronunciation(); if (_e) _o->pronunciation = _e->str(); };
2139   { auto _e = destinations(); if (_e) _o->destinations = _e->str(); };
2140   { auto _e = exits(); if (_e) _o->exits = _e->str(); };
2141   { auto _e = mode(); if (_e) _o->mode = _e->str(); };
2142   { auto _e = maneuver(); if (_e) _o->maneuver = std::unique_ptr<osrm::engine::api::fbresult::StepManeuverT>(_e->UnPack(_resolver)); };
2143   { auto _e = intersections(); if (_e) { _o->intersections.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->intersections[_i] = std::unique_ptr<osrm::engine::api::fbresult::IntersectionT>(_e->Get(_i)->UnPack(_resolver)); } } };
2144   { auto _e = rotary_name(); if (_e) _o->rotary_name = _e->str(); };
2145   { auto _e = rotary_pronunciation(); if (_e) _o->rotary_pronunciation = _e->str(); };
2146   { auto _e = driving_side(); _o->driving_side = _e; };
2147 }
2148 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const StepT * _o,const flatbuffers::rehasher_function_t * _rehasher)2149 inline flatbuffers::Offset<Step> Step::Pack(flatbuffers::FlatBufferBuilder &_fbb, const StepT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
2150   return CreateStep(_fbb, _o, _rehasher);
2151 }
2152 
CreateStep(flatbuffers::FlatBufferBuilder & _fbb,const StepT * _o,const flatbuffers::rehasher_function_t * _rehasher)2153 inline flatbuffers::Offset<Step> CreateStep(flatbuffers::FlatBufferBuilder &_fbb, const StepT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
2154   (void)_rehasher;
2155   (void)_o;
2156   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const StepT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
2157   auto _distance = _o->distance;
2158   auto _duration = _o->duration;
2159   auto _polyline = _o->polyline.empty() ? 0 : _fbb.CreateString(_o->polyline);
2160   auto _coordinates = _o->coordinates.size() ? _fbb.CreateVectorOfStructs(_o->coordinates) : 0;
2161   auto _weight = _o->weight;
2162   auto _name = _o->name.empty() ? 0 : _fbb.CreateString(_o->name);
2163   auto _ref = _o->ref.empty() ? 0 : _fbb.CreateString(_o->ref);
2164   auto _pronunciation = _o->pronunciation.empty() ? 0 : _fbb.CreateString(_o->pronunciation);
2165   auto _destinations = _o->destinations.empty() ? 0 : _fbb.CreateString(_o->destinations);
2166   auto _exits = _o->exits.empty() ? 0 : _fbb.CreateString(_o->exits);
2167   auto _mode = _o->mode.empty() ? 0 : _fbb.CreateString(_o->mode);
2168   auto _maneuver = _o->maneuver ? CreateStepManeuver(_fbb, _o->maneuver.get(), _rehasher) : 0;
2169   auto _intersections = _o->intersections.size() ? _fbb.CreateVector<flatbuffers::Offset<osrm::engine::api::fbresult::Intersection>> (_o->intersections.size(), [](size_t i, _VectorArgs *__va) { return CreateIntersection(*__va->__fbb, __va->__o->intersections[i].get(), __va->__rehasher); }, &_va ) : 0;
2170   auto _rotary_name = _o->rotary_name.empty() ? 0 : _fbb.CreateString(_o->rotary_name);
2171   auto _rotary_pronunciation = _o->rotary_pronunciation.empty() ? 0 : _fbb.CreateString(_o->rotary_pronunciation);
2172   auto _driving_side = _o->driving_side;
2173   return osrm::engine::api::fbresult::CreateStep(
2174       _fbb,
2175       _distance,
2176       _duration,
2177       _polyline,
2178       _coordinates,
2179       _weight,
2180       _name,
2181       _ref,
2182       _pronunciation,
2183       _destinations,
2184       _exits,
2185       _mode,
2186       _maneuver,
2187       _intersections,
2188       _rotary_name,
2189       _rotary_pronunciation,
2190       _driving_side);
2191 }
2192 
UnPack(const flatbuffers::resolver_function_t * _resolver)2193 inline LegT *Leg::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
2194   auto _o = new LegT();
2195   UnPackTo(_o, _resolver);
2196   return _o;
2197 }
2198 
UnPackTo(LegT * _o,const flatbuffers::resolver_function_t * _resolver)2199 inline void Leg::UnPackTo(LegT *_o, const flatbuffers::resolver_function_t *_resolver) const {
2200   (void)_o;
2201   (void)_resolver;
2202   { auto _e = distance(); _o->distance = _e; };
2203   { auto _e = duration(); _o->duration = _e; };
2204   { auto _e = weight(); _o->weight = _e; };
2205   { auto _e = summary(); if (_e) _o->summary = _e->str(); };
2206   { auto _e = annotations(); if (_e) _o->annotations = std::unique_ptr<osrm::engine::api::fbresult::AnnotationT>(_e->UnPack(_resolver)); };
2207   { auto _e = steps(); if (_e) { _o->steps.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->steps[_i] = std::unique_ptr<osrm::engine::api::fbresult::StepT>(_e->Get(_i)->UnPack(_resolver)); } } };
2208 }
2209 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const LegT * _o,const flatbuffers::rehasher_function_t * _rehasher)2210 inline flatbuffers::Offset<Leg> Leg::Pack(flatbuffers::FlatBufferBuilder &_fbb, const LegT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
2211   return CreateLeg(_fbb, _o, _rehasher);
2212 }
2213 
CreateLeg(flatbuffers::FlatBufferBuilder & _fbb,const LegT * _o,const flatbuffers::rehasher_function_t * _rehasher)2214 inline flatbuffers::Offset<Leg> CreateLeg(flatbuffers::FlatBufferBuilder &_fbb, const LegT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
2215   (void)_rehasher;
2216   (void)_o;
2217   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const LegT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
2218   auto _distance = _o->distance;
2219   auto _duration = _o->duration;
2220   auto _weight = _o->weight;
2221   auto _summary = _o->summary.empty() ? 0 : _fbb.CreateString(_o->summary);
2222   auto _annotations = _o->annotations ? CreateAnnotation(_fbb, _o->annotations.get(), _rehasher) : 0;
2223   auto _steps = _o->steps.size() ? _fbb.CreateVector<flatbuffers::Offset<osrm::engine::api::fbresult::Step>> (_o->steps.size(), [](size_t i, _VectorArgs *__va) { return CreateStep(*__va->__fbb, __va->__o->steps[i].get(), __va->__rehasher); }, &_va ) : 0;
2224   return osrm::engine::api::fbresult::CreateLeg(
2225       _fbb,
2226       _distance,
2227       _duration,
2228       _weight,
2229       _summary,
2230       _annotations,
2231       _steps);
2232 }
2233 
UnPack(const flatbuffers::resolver_function_t * _resolver)2234 inline RouteObjectT *RouteObject::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
2235   auto _o = new RouteObjectT();
2236   UnPackTo(_o, _resolver);
2237   return _o;
2238 }
2239 
UnPackTo(RouteObjectT * _o,const flatbuffers::resolver_function_t * _resolver)2240 inline void RouteObject::UnPackTo(RouteObjectT *_o, const flatbuffers::resolver_function_t *_resolver) const {
2241   (void)_o;
2242   (void)_resolver;
2243   { auto _e = distance(); _o->distance = _e; };
2244   { auto _e = duration(); _o->duration = _e; };
2245   { auto _e = weight(); _o->weight = _e; };
2246   { auto _e = weight_name(); if (_e) _o->weight_name = _e->str(); };
2247   { auto _e = confidence(); _o->confidence = _e; };
2248   { auto _e = polyline(); if (_e) _o->polyline = _e->str(); };
2249   { auto _e = coordinates(); if (_e) { _o->coordinates.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->coordinates[_i] = *_e->Get(_i); } } };
2250   { auto _e = legs(); if (_e) { _o->legs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->legs[_i] = std::unique_ptr<osrm::engine::api::fbresult::LegT>(_e->Get(_i)->UnPack(_resolver)); } } };
2251 }
2252 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const RouteObjectT * _o,const flatbuffers::rehasher_function_t * _rehasher)2253 inline flatbuffers::Offset<RouteObject> RouteObject::Pack(flatbuffers::FlatBufferBuilder &_fbb, const RouteObjectT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
2254   return CreateRouteObject(_fbb, _o, _rehasher);
2255 }
2256 
CreateRouteObject(flatbuffers::FlatBufferBuilder & _fbb,const RouteObjectT * _o,const flatbuffers::rehasher_function_t * _rehasher)2257 inline flatbuffers::Offset<RouteObject> CreateRouteObject(flatbuffers::FlatBufferBuilder &_fbb, const RouteObjectT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
2258   (void)_rehasher;
2259   (void)_o;
2260   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const RouteObjectT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
2261   auto _distance = _o->distance;
2262   auto _duration = _o->duration;
2263   auto _weight = _o->weight;
2264   auto _weight_name = _o->weight_name.empty() ? 0 : _fbb.CreateString(_o->weight_name);
2265   auto _confidence = _o->confidence;
2266   auto _polyline = _o->polyline.empty() ? 0 : _fbb.CreateString(_o->polyline);
2267   auto _coordinates = _o->coordinates.size() ? _fbb.CreateVectorOfStructs(_o->coordinates) : 0;
2268   auto _legs = _o->legs.size() ? _fbb.CreateVector<flatbuffers::Offset<osrm::engine::api::fbresult::Leg>> (_o->legs.size(), [](size_t i, _VectorArgs *__va) { return CreateLeg(*__va->__fbb, __va->__o->legs[i].get(), __va->__rehasher); }, &_va ) : 0;
2269   return osrm::engine::api::fbresult::CreateRouteObject(
2270       _fbb,
2271       _distance,
2272       _duration,
2273       _weight,
2274       _weight_name,
2275       _confidence,
2276       _polyline,
2277       _coordinates,
2278       _legs);
2279 }
2280 
UnPack(const flatbuffers::resolver_function_t * _resolver)2281 inline TableT *Table::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
2282   auto _o = new TableT();
2283   UnPackTo(_o, _resolver);
2284   return _o;
2285 }
2286 
UnPackTo(TableT * _o,const flatbuffers::resolver_function_t * _resolver)2287 inline void Table::UnPackTo(TableT *_o, const flatbuffers::resolver_function_t *_resolver) const {
2288   (void)_o;
2289   (void)_resolver;
2290   { auto _e = durations(); if (_e) { _o->durations.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->durations[_i] = _e->Get(_i); } } };
2291   { auto _e = rows(); _o->rows = _e; };
2292   { auto _e = cols(); _o->cols = _e; };
2293   { auto _e = distances(); if (_e) { _o->distances.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->distances[_i] = _e->Get(_i); } } };
2294   { auto _e = destinations(); if (_e) { _o->destinations.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->destinations[_i] = std::unique_ptr<osrm::engine::api::fbresult::WaypointT>(_e->Get(_i)->UnPack(_resolver)); } } };
2295   { auto _e = fallback_speed_cells(); if (_e) { _o->fallback_speed_cells.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->fallback_speed_cells[_i] = _e->Get(_i); } } };
2296 }
2297 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const TableT * _o,const flatbuffers::rehasher_function_t * _rehasher)2298 inline flatbuffers::Offset<Table> Table::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TableT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
2299   return CreateTable(_fbb, _o, _rehasher);
2300 }
2301 
CreateTable(flatbuffers::FlatBufferBuilder & _fbb,const TableT * _o,const flatbuffers::rehasher_function_t * _rehasher)2302 inline flatbuffers::Offset<Table> CreateTable(flatbuffers::FlatBufferBuilder &_fbb, const TableT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
2303   (void)_rehasher;
2304   (void)_o;
2305   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const TableT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
2306   auto _durations = _o->durations.size() ? _fbb.CreateVector(_o->durations) : 0;
2307   auto _rows = _o->rows;
2308   auto _cols = _o->cols;
2309   auto _distances = _o->distances.size() ? _fbb.CreateVector(_o->distances) : 0;
2310   auto _destinations = _o->destinations.size() ? _fbb.CreateVector<flatbuffers::Offset<osrm::engine::api::fbresult::Waypoint>> (_o->destinations.size(), [](size_t i, _VectorArgs *__va) { return CreateWaypoint(*__va->__fbb, __va->__o->destinations[i].get(), __va->__rehasher); }, &_va ) : 0;
2311   auto _fallback_speed_cells = _o->fallback_speed_cells.size() ? _fbb.CreateVector(_o->fallback_speed_cells) : 0;
2312   return osrm::engine::api::fbresult::CreateTable(
2313       _fbb,
2314       _durations,
2315       _rows,
2316       _cols,
2317       _distances,
2318       _destinations,
2319       _fallback_speed_cells);
2320 }
2321 
UnPack(const flatbuffers::resolver_function_t * _resolver)2322 inline ErrorT *Error::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
2323   auto _o = new ErrorT();
2324   UnPackTo(_o, _resolver);
2325   return _o;
2326 }
2327 
UnPackTo(ErrorT * _o,const flatbuffers::resolver_function_t * _resolver)2328 inline void Error::UnPackTo(ErrorT *_o, const flatbuffers::resolver_function_t *_resolver) const {
2329   (void)_o;
2330   (void)_resolver;
2331   { auto _e = code(); if (_e) _o->code = _e->str(); };
2332   { auto _e = message(); if (_e) _o->message = _e->str(); };
2333 }
2334 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const ErrorT * _o,const flatbuffers::rehasher_function_t * _rehasher)2335 inline flatbuffers::Offset<Error> Error::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ErrorT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
2336   return CreateError(_fbb, _o, _rehasher);
2337 }
2338 
CreateError(flatbuffers::FlatBufferBuilder & _fbb,const ErrorT * _o,const flatbuffers::rehasher_function_t * _rehasher)2339 inline flatbuffers::Offset<Error> CreateError(flatbuffers::FlatBufferBuilder &_fbb, const ErrorT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
2340   (void)_rehasher;
2341   (void)_o;
2342   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ErrorT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
2343   auto _code = _o->code.empty() ? 0 : _fbb.CreateString(_o->code);
2344   auto _message = _o->message.empty() ? 0 : _fbb.CreateString(_o->message);
2345   return osrm::engine::api::fbresult::CreateError(
2346       _fbb,
2347       _code,
2348       _message);
2349 }
2350 
UnPack(const flatbuffers::resolver_function_t * _resolver)2351 inline FBResultT *FBResult::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
2352   auto _o = new FBResultT();
2353   UnPackTo(_o, _resolver);
2354   return _o;
2355 }
2356 
UnPackTo(FBResultT * _o,const flatbuffers::resolver_function_t * _resolver)2357 inline void FBResult::UnPackTo(FBResultT *_o, const flatbuffers::resolver_function_t *_resolver) const {
2358   (void)_o;
2359   (void)_resolver;
2360   { auto _e = error(); _o->error = _e; };
2361   { auto _e = code(); if (_e) _o->code = std::unique_ptr<osrm::engine::api::fbresult::ErrorT>(_e->UnPack(_resolver)); };
2362   { auto _e = data_version(); if (_e) _o->data_version = _e->str(); };
2363   { auto _e = waypoints(); if (_e) { _o->waypoints.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->waypoints[_i] = std::unique_ptr<osrm::engine::api::fbresult::WaypointT>(_e->Get(_i)->UnPack(_resolver)); } } };
2364   { auto _e = routes(); if (_e) { _o->routes.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->routes[_i] = std::unique_ptr<osrm::engine::api::fbresult::RouteObjectT>(_e->Get(_i)->UnPack(_resolver)); } } };
2365   { auto _e = table(); if (_e) _o->table = std::unique_ptr<osrm::engine::api::fbresult::TableT>(_e->UnPack(_resolver)); };
2366 }
2367 
Pack(flatbuffers::FlatBufferBuilder & _fbb,const FBResultT * _o,const flatbuffers::rehasher_function_t * _rehasher)2368 inline flatbuffers::Offset<FBResult> FBResult::Pack(flatbuffers::FlatBufferBuilder &_fbb, const FBResultT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
2369   return CreateFBResult(_fbb, _o, _rehasher);
2370 }
2371 
CreateFBResult(flatbuffers::FlatBufferBuilder & _fbb,const FBResultT * _o,const flatbuffers::rehasher_function_t * _rehasher)2372 inline flatbuffers::Offset<FBResult> CreateFBResult(flatbuffers::FlatBufferBuilder &_fbb, const FBResultT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
2373   (void)_rehasher;
2374   (void)_o;
2375   struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const FBResultT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
2376   auto _error = _o->error;
2377   auto _code = _o->code ? CreateError(_fbb, _o->code.get(), _rehasher) : 0;
2378   auto _data_version = _o->data_version.empty() ? 0 : _fbb.CreateString(_o->data_version);
2379   auto _waypoints = _o->waypoints.size() ? _fbb.CreateVector<flatbuffers::Offset<osrm::engine::api::fbresult::Waypoint>> (_o->waypoints.size(), [](size_t i, _VectorArgs *__va) { return CreateWaypoint(*__va->__fbb, __va->__o->waypoints[i].get(), __va->__rehasher); }, &_va ) : 0;
2380   auto _routes = _o->routes.size() ? _fbb.CreateVector<flatbuffers::Offset<osrm::engine::api::fbresult::RouteObject>> (_o->routes.size(), [](size_t i, _VectorArgs *__va) { return CreateRouteObject(*__va->__fbb, __va->__o->routes[i].get(), __va->__rehasher); }, &_va ) : 0;
2381   auto _table = _o->table ? CreateTable(_fbb, _o->table.get(), _rehasher) : 0;
2382   return osrm::engine::api::fbresult::CreateFBResult(
2383       _fbb,
2384       _error,
2385       _code,
2386       _data_version,
2387       _waypoints,
2388       _routes,
2389       _table);
2390 }
2391 
GetFBResult(const void * buf)2392 inline const osrm::engine::api::fbresult::FBResult *GetFBResult(const void *buf) {
2393   return flatbuffers::GetRoot<osrm::engine::api::fbresult::FBResult>(buf);
2394 }
2395 
GetSizePrefixedFBResult(const void * buf)2396 inline const osrm::engine::api::fbresult::FBResult *GetSizePrefixedFBResult(const void *buf) {
2397   return flatbuffers::GetSizePrefixedRoot<osrm::engine::api::fbresult::FBResult>(buf);
2398 }
2399 
VerifyFBResultBuffer(flatbuffers::Verifier & verifier)2400 inline bool VerifyFBResultBuffer(
2401     flatbuffers::Verifier &verifier) {
2402   return verifier.VerifyBuffer<osrm::engine::api::fbresult::FBResult>(nullptr);
2403 }
2404 
VerifySizePrefixedFBResultBuffer(flatbuffers::Verifier & verifier)2405 inline bool VerifySizePrefixedFBResultBuffer(
2406     flatbuffers::Verifier &verifier) {
2407   return verifier.VerifySizePrefixedBuffer<osrm::engine::api::fbresult::FBResult>(nullptr);
2408 }
2409 
FinishFBResultBuffer(flatbuffers::FlatBufferBuilder & fbb,flatbuffers::Offset<osrm::engine::api::fbresult::FBResult> root)2410 inline void FinishFBResultBuffer(
2411     flatbuffers::FlatBufferBuilder &fbb,
2412     flatbuffers::Offset<osrm::engine::api::fbresult::FBResult> root) {
2413   fbb.Finish(root);
2414 }
2415 
FinishSizePrefixedFBResultBuffer(flatbuffers::FlatBufferBuilder & fbb,flatbuffers::Offset<osrm::engine::api::fbresult::FBResult> root)2416 inline void FinishSizePrefixedFBResultBuffer(
2417     flatbuffers::FlatBufferBuilder &fbb,
2418     flatbuffers::Offset<osrm::engine::api::fbresult::FBResult> root) {
2419   fbb.FinishSizePrefixed(root);
2420 }
2421 
2422 inline std::unique_ptr<osrm::engine::api::fbresult::FBResultT> UnPackFBResult(
2423     const void *buf,
2424     const flatbuffers::resolver_function_t *res = nullptr) {
2425   return std::unique_ptr<osrm::engine::api::fbresult::FBResultT>(GetFBResult(buf)->UnPack(res));
2426 }
2427 
2428 inline std::unique_ptr<osrm::engine::api::fbresult::FBResultT> UnPackSizePrefixedFBResult(
2429     const void *buf,
2430     const flatbuffers::resolver_function_t *res = nullptr) {
2431   return std::unique_ptr<osrm::engine::api::fbresult::FBResultT>(GetSizePrefixedFBResult(buf)->UnPack(res));
2432 }
2433 
2434 }  // namespace fbresult
2435 }  // namespace api
2436 }  // namespace engine
2437 }  // namespace osrm
2438 
2439 #endif  // FLATBUFFERS_GENERATED_FBRESULT_OSRM_ENGINE_API_FBRESULT_H_
2440