inline bool isRightTurn(const extractor::guidance::TurnInstruction instruction) { switch (instruction.type) { case extractor::guidance::TurnType::Merge: return hasLeftModifier(instruction); default: return hasRightModifier(instruction); } }
// alias for readability, both turn right | left inline bool areSameSide(const RouteStep &lhs, const RouteStep &rhs) { const auto is_left = [](const RouteStep &step) { return hasModifier(step, DirectionModifier::Straight) || hasLeftModifier(step.maneuver.instruction); }; const auto is_right = [](const RouteStep &step) { return hasModifier(step, DirectionModifier::Straight) || hasRightModifier(step.maneuver.instruction); }; return (is_left(lhs) && is_left(rhs)) || (is_right(lhs) && is_right(rhs)); }