RPM build fix (reverted CI changes which will need to be un-reverted or made conditional) and vendor Rust dependencies to make builds much faster in any CI system.
This commit is contained in:
100
zeroidc/vendor/cbindgen/tests/expectations/derive_eq.cpp
vendored
Normal file
100
zeroidc/vendor/cbindgen/tests/expectations/derive_eq.cpp
vendored
Normal file
@@ -0,0 +1,100 @@
|
||||
#include <cstdarg>
|
||||
#include <cstdint>
|
||||
#include <cstdlib>
|
||||
#include <ostream>
|
||||
#include <new>
|
||||
|
||||
struct Foo {
|
||||
bool a;
|
||||
int32_t b;
|
||||
|
||||
bool operator==(const Foo& aOther) const {
|
||||
return a == aOther.a &&
|
||||
b == aOther.b;
|
||||
}
|
||||
bool operator!=(const Foo& aOther) const {
|
||||
return a != aOther.a ||
|
||||
b != aOther.b;
|
||||
}
|
||||
};
|
||||
|
||||
union Bar {
|
||||
enum class Tag : uint8_t {
|
||||
Baz,
|
||||
Bazz,
|
||||
FooNamed,
|
||||
FooParen,
|
||||
};
|
||||
|
||||
struct Bazz_Body {
|
||||
Tag tag;
|
||||
Foo named;
|
||||
|
||||
bool operator==(const Bazz_Body& aOther) const {
|
||||
return named == aOther.named;
|
||||
}
|
||||
bool operator!=(const Bazz_Body& aOther) const {
|
||||
return named != aOther.named;
|
||||
}
|
||||
};
|
||||
|
||||
struct FooNamed_Body {
|
||||
Tag tag;
|
||||
int32_t different;
|
||||
uint32_t fields;
|
||||
|
||||
bool operator==(const FooNamed_Body& aOther) const {
|
||||
return different == aOther.different &&
|
||||
fields == aOther.fields;
|
||||
}
|
||||
bool operator!=(const FooNamed_Body& aOther) const {
|
||||
return different != aOther.different ||
|
||||
fields != aOther.fields;
|
||||
}
|
||||
};
|
||||
|
||||
struct FooParen_Body {
|
||||
Tag tag;
|
||||
int32_t _0;
|
||||
Foo _1;
|
||||
|
||||
bool operator==(const FooParen_Body& aOther) const {
|
||||
return _0 == aOther._0 &&
|
||||
_1 == aOther._1;
|
||||
}
|
||||
bool operator!=(const FooParen_Body& aOther) const {
|
||||
return _0 != aOther._0 ||
|
||||
_1 != aOther._1;
|
||||
}
|
||||
};
|
||||
|
||||
struct {
|
||||
Tag tag;
|
||||
};
|
||||
Bazz_Body bazz;
|
||||
FooNamed_Body foo_named;
|
||||
FooParen_Body foo_paren;
|
||||
|
||||
bool operator==(const Bar& aOther) const {
|
||||
if (tag != aOther.tag) {
|
||||
return false;
|
||||
}
|
||||
switch (tag) {
|
||||
case Tag::Bazz: return bazz == aOther.bazz;
|
||||
case Tag::FooNamed: return foo_named == aOther.foo_named;
|
||||
case Tag::FooParen: return foo_paren == aOther.foo_paren;
|
||||
default: break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool operator!=(const Bar& aOther) const {
|
||||
return !(*this == aOther);
|
||||
}
|
||||
};
|
||||
|
||||
extern "C" {
|
||||
|
||||
Foo root(Bar aBar);
|
||||
|
||||
} // extern "C"
|
||||
Reference in New Issue
Block a user