21#include <nlohmann/json.hpp>
26#include <api/board/board_rules.pb.h>
27#include <google/protobuf/any.h>
28#include <google/protobuf/util/json_util.h>
62 google::protobuf::Any container;
65 container.UnpackTo( ex.
m_impl->message.mutable_marker() );
75 ex.
m_impl->message.CopyFrom( aMessage );
86 google::protobuf::Any container;
87 marker->Serialize( container );
88 container.UnpackTo( ex.
m_impl->message.mutable_marker() );
105 google::protobuf::util::JsonPrintOptions jsonOptions;
106 jsonOptions.preserve_proto_field_names =
true;
109 std::ignore = google::protobuf::util::MessageToJsonString( aEx.
m_impl->message, &
json, jsonOptions ).ok();
113 aJson = nlohmann::json::parse(
json );
117 aJson = nlohmann::json{};
124 std::ignore = google::protobuf::util::JsonStringToMessage( aJson.dump(), &aEx.
m_impl->message ).ok();
130 if( !
m_impl->message.has_marker() )
131 return std::string();
134 if(
m_impl->message.marker().error_type() == kiapi::board::DRCET_UNCONNECTED_ITEMS )
136 kiapi::board::DrcMarker marker =
m_impl->message.marker();
137 marker.clear_layer();
138 return marker.SerializeAsString();
141 return m_impl->message.marker().SerializeAsString();
147 return wxString::FromUTF8(
m_impl->message.comment() );
153 m_impl->message.set_comment( aComment.ToUTF8() );
Container for an DRC exclusion, which is a PCB_MARKER plus an optional comment.
DRC_EXCLUSION & operator=(const DRC_EXCLUSION &aOther)
static DRC_EXCLUSION FromLegacyStrings(const wxString &aMarkerData, const wxString &aComment)
void SetComment(const wxString &aComment)
std::string GetSortKey() const
static DRC_EXCLUSION FromProto(const kiapi::board::DrcExclusion &aMessage)
std::unique_ptr< IMPL > m_impl
wxString GetComment() const
static DRC_EXCLUSION FromMarker(const PCB_MARKER &aMarker)
const kiapi::board::DrcExclusion & ToProto() const
wxString GetComment() const
void Serialize(google::protobuf::Any &aContainer) const override
Serializes this object to the given Any message.
static PCB_MARKER * FromLegacyString(const wxString &aData)
void to_json(nlohmann::json &aJson, const DRC_EXCLUSION &aEx)
void from_json(const nlohmann::json &aJson, DRC_EXCLUSION &aEx)
kiapi::board::DrcExclusion message