Also do the comperty comparison in C++

This commit is contained in:
Olivier Goffart 2020-10-31 14:36:38 +01:00
parent 2ece3817cc
commit 1eb7203ec8
6 changed files with 82 additions and 4 deletions

View file

@ -37,6 +37,23 @@ public:
{
}
friend bool operator==(const PathData &a, const PathData &b) {
if (a.data.tag != b.data.tag)
return false;
switch (a.data.tag) {
case cbindgen_private::types::PathData::Tag::Elements:
return a.data.elements._0 == b.data.elements._0;
case cbindgen_private::types::PathData::Tag::Events:
return a.data.events._0 == b.data.events._0 && b.data.events._0 == b.data.events._0;
case cbindgen_private::types::PathData::Tag::None:
return true;
}
}
friend bool operator!=(const PathData &a, const PathData &b) {
return !(a == b);
}
private:
static SharedArray<PathElement> elements_from_array(const PathElement *firstElement,
size_t count)