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)} {}
47  Issue(Severity severity, Primitive primitive, Id id, std::string 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 
60  Primitive primitive{Primitive::Point};
61  Id id{InvalId};
62  std::string message;
63 };
64 
65 using Issues = std::vector<Issue>;
66 
67 } // namespace validation
68 } // namespace lanelet
int64_t Id
std::vector< Issue > Issues
Definition: Issue.h:65
Issue(Severity severity, Primitive primitive, Id id, std::string message)
Definition: Issue.h:47
std::string message
Message to be displayed.
Definition: Issue.h:62
const char * toString(Severity severity)
Definition: Issue.h:12
Issue(Severity severity, std::string message)
Definition: Issue.h:46
constexpr Id InvalId
std::string buildReport() const
Definition: Issue.h:49


lanelet2_validation
Author(s): Fabian Poggenhans
autogenerated on Tue Jun 6 2023 02:24:02