mirror of
https://github.com/slint-ui/slint.git
synced 2025-09-30 22:01:13 +00:00
Value comparison in C++
This commit is contained in:
parent
8a14c4fa25
commit
09b7b92dbe
3 changed files with 35 additions and 0 deletions
|
@ -232,6 +232,13 @@ public:
|
|||
|
||||
Type type() const { return cbindgen_private::sixtyfps_interpreter_value_type(&inner); }
|
||||
|
||||
friend bool operator==(const Value &a, const Value &b) {
|
||||
return cbindgen_private::sixtyfps_interpreter_value_eq(&a.inner, &b.inner);
|
||||
}
|
||||
friend bool operator!=(const Value &a, const Value &b) {
|
||||
return !cbindgen_private::sixtyfps_interpreter_value_eq(&a.inner, &b.inner);
|
||||
}
|
||||
|
||||
private:
|
||||
using ValueOpaque = sixtyfps::cbindgen_private::ValueOpaque;
|
||||
ValueOpaque inner;
|
||||
|
|
|
@ -155,6 +155,29 @@ SCENARIO("Value API")
|
|||
}
|
||||
REQUIRE(destroyed);
|
||||
}
|
||||
|
||||
|
||||
SECTION("Compare Values")
|
||||
{
|
||||
Value str1{sixtyfps::SharedString("Hello1")};
|
||||
Value str2{sixtyfps::SharedString("Hello2")};
|
||||
Value fl1{10.};
|
||||
Value fl2{12.};
|
||||
|
||||
REQUIRE(str1 == str1);
|
||||
REQUIRE(str1 != str2);
|
||||
REQUIRE(str1 != fl2);
|
||||
REQUIRE(fl1 == fl1);
|
||||
REQUIRE(fl1 != fl2);
|
||||
REQUIRE(Value() == Value());
|
||||
REQUIRE(Value() != str1);
|
||||
REQUIRE(str1 == sixtyfps::SharedString("Hello1"));
|
||||
REQUIRE(str1 != sixtyfps::SharedString("Hello2"));
|
||||
REQUIRE(sixtyfps::SharedString("Hello2") == str2);
|
||||
REQUIRE(fl1 != sixtyfps::SharedString("Hello2"));
|
||||
REQUIRE(fl2 == 12.);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
SCENARIO("Struct API")
|
||||
|
|
|
@ -783,6 +783,11 @@ pub(crate) mod ffi {
|
|||
drop(std::ptr::read(val as *mut Value))
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn sixtyfps_interpreter_value_eq(a: &ValueOpaque, b: &ValueOpaque) -> bool {
|
||||
a.as_value() == b.as_value()
|
||||
}
|
||||
|
||||
/// Construct a new Value in the given memory location as string
|
||||
#[no_mangle]
|
||||
pub unsafe extern "C" fn sixtyfps_interpreter_value_new_string(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue