Issue.h
Go to the documentation of this file.
1 #pragma once
3 
4 #include <sstream>
5 #include <vector>
6 
7 namespace lanelet {
8 namespace validation {
9 enum class Severity { Error, Warning, Info };
11 
12 inline const char* toString(Severity severity) {
13  switch (severity) {
14  case Severity::Error:
15  return "Error";
16  case Severity::Warning:
17  return "Warning";
18  case Severity::Info:
19  return "info";
20  }
21  return "";
22 }
23 
24 inline const char* toString(Primitive primitive) {
25  switch (primitive) {
26  case Primitive::Point:
27  return "point";
29  return "linestring";
30  case Primitive::Polygon:
31  return "polygon";
32  case Primitive::Lanelet:
33  return "lanelet";
34  case Primitive::Area:
35  return "area";
37  return "regulatory element";
39  return "primitive";
40  }
41  return "";
42 }
43 
44 struct Issue {
45  Issue() = default;
46  Issue(Severity severity, std::string message) : severity{severity}, message{std::move(message)} {}
48  : severity{severity}, primitive{primitive}, id{id}, message{std::move(message)} {}
49  std::string buildReport() const {
50  std::stringstream ss;
51  ss << toString(severity) << ": ";
52  if (id != InvalId) {
53  ss << toString(primitive) << " " << std::to_string(id) << " ";
54  }
55  ss << message;
56  return ss.str();
57  }
58 
61  Id id{InvalId};
62  std::string message;
63 };
64 
65 using Issues = std::vector<Issue>;
66 
67 } // namespace validation
68 } // namespace lanelet
lanelet::InvalId
constexpr Id InvalId
lanelet::validation::Primitive::RegulatoryElement
@ RegulatoryElement
lanelet
lanelet::validation::Issue::message
std::string message
Message to be displayed.
Definition: Issue.h:62
lanelet::validation::Primitive::LineString
@ LineString
lanelet::validation::Issue::buildReport
std::string buildReport() const
Definition: Issue.h:49
lanelet::Id
int64_t Id
lanelet::validation::Primitive::Point
@ Point
lanelet::validation::Issue::Issue
Issue(Severity severity, std::string message)
Definition: Issue.h:46
Forward.h
lanelet::validation::Issues
std::vector< Issue > Issues
Definition: Issue.h:65
lanelet::validation::Primitive::Lanelet
@ Lanelet
lanelet::validation::Issue::Issue
Issue(Severity severity, Primitive primitive, Id id, std::string message)
Definition: Issue.h:47
lanelet::validation::Severity::Info
@ Info
lanelet::validation::Issue::Issue
Issue()=default
lanelet::validation::Severity::Warning
@ Warning
lanelet::validation::Primitive::Primitive
@ Primitive
lanelet::validation::Severity::Error
@ Error
lanelet::validation::Severity
Severity
Definition: Issue.h:9
lanelet::validation::Primitive
Primitive
Definition: Issue.h:10
lanelet::validation::Issue::severity
Severity severity
Severity class of issue.
Definition: Issue.h:59
lanelet::validation::Primitive::Polygon
@ Polygon
lanelet::validation::Issue
Definition: Issue.h:44
lanelet::validation::Issue::primitive
Primitive primitive
Type of primitive that caused the issue.
Definition: Issue.h:60
lanelet::validation::Primitive::Area
@ Area
lanelet::validation::toString
const char * toString(Severity severity)
Definition: Issue.h:12


lanelet2_validation
Author(s): Fabian Poggenhans
autogenerated on Thu Mar 6 2025 03:26:17