| 258 | } |
| 259 | |
| 260 | util::json::Object makeRouteLeg(guidance::RouteLeg leg, |
| 261 | util::json::Array steps, |
| 262 | std::optional<util::json::Value> leg_geometry, |
| 263 | std::optional<util::json::Object> annotation) |
| 264 | { |
| 265 | util::json::Object route_leg; |
| 266 | route_leg.values.reserve(5); |
| 267 | |
| 268 | route_leg.values.emplace("distance", leg.distance); |
| 269 | route_leg.values.emplace("duration", leg.duration); |
| 270 | route_leg.values.emplace("weight", leg.weight); |
| 271 | route_leg.values.emplace("summary", std::move(leg.summary)); |
| 272 | route_leg.values.emplace("steps", std::move(steps)); |
| 273 | if (leg_geometry) |
| 274 | { |
| 275 | route_leg.values.emplace("geometry", std::move(*leg_geometry)); |
| 276 | } |
| 277 | if (annotation) |
| 278 | { |
| 279 | route_leg.values.emplace("annotation", std::move(*annotation)); |
| 280 | } |
| 281 | return route_leg; |
| 282 | } |
| 283 | |
| 284 | util::json::Array makeRouteLegs(std::vector<guidance::RouteLeg> legs, |
| 285 | std::vector<util::json::Value> leg_geometries, |
no test coverage detected