@@ -926,13 +926,29 @@ cpp_class!(
926
926
pub unsafe struct QJSValue as "QJSValue"
927
927
) ;
928
928
929
+ /// Wrapper for [`QJSValue::SpecialValue`][qt]
930
+ ///
931
+ /// [qt]: https://doc.qt.io/qt-5/qjsvalue.html#SpecialValue-enum
932
+ #[ repr( u32 ) ]
933
+ #[ derive( Clone , Copy , Debug , PartialEq ) ]
934
+ pub enum QJSValueSpecialValue {
935
+ NullValue = 0 ,
936
+ UndefinedValue = 1 ,
937
+ }
938
+
929
939
impl QJSValue {
930
940
pub fn is_bool ( & self ) -> bool {
931
941
cpp ! ( unsafe [ self as "const QJSValue *" ] -> bool as "bool" {
932
942
return self ->isBool( ) ;
933
943
} )
934
944
}
935
945
946
+ pub fn is_null ( & self ) -> bool {
947
+ cpp ! ( unsafe [ self as "const QJSValue *" ] -> bool as "bool" {
948
+ return self ->isNull( ) ;
949
+ } )
950
+ }
951
+
936
952
pub fn is_number ( & self ) -> bool {
937
953
cpp ! ( unsafe [ self as "const QJSValue *" ] -> bool as "bool" {
938
954
return self ->isNumber( ) ;
@@ -945,6 +961,12 @@ impl QJSValue {
945
961
} )
946
962
}
947
963
964
+ pub fn is_undefined ( & self ) -> bool {
965
+ cpp ! ( unsafe [ self as "const QJSValue *" ] -> bool as "bool" {
966
+ return self ->isUndefined( ) ;
967
+ } )
968
+ }
969
+
948
970
pub fn to_string ( & self ) -> QString {
949
971
cpp ! ( unsafe [ self as "const QJSValue *" ] -> QString as "QString" {
950
972
return self ->toString( ) ;
@@ -1026,6 +1048,14 @@ impl From<bool> for QJSValue {
1026
1048
}
1027
1049
}
1028
1050
1051
+ impl From < QJSValueSpecialValue > for QJSValue {
1052
+ fn from ( a : QJSValueSpecialValue ) -> QJSValue {
1053
+ cpp ! ( unsafe [ a as "QJSValue::SpecialValue" ] -> QJSValue as "QJSValue" {
1054
+ return QJSValue ( a) ;
1055
+ } )
1056
+ }
1057
+ }
1058
+
1029
1059
impl QMetaType for QJSValue {
1030
1060
fn register ( _name : Option < & CStr > ) -> i32 {
1031
1061
cpp ! ( unsafe [ ] -> i32 as "int" { return qMetaTypeId<QJSValue >( ) ; } )
@@ -1053,6 +1083,15 @@ mod qjsvalue_tests {
1053
1083
assert ! ( !num_value. is_bool( ) ) ;
1054
1084
}
1055
1085
1086
+ #[ test]
1087
+ fn test_is_null ( ) {
1088
+ let null_value = QJSValue :: from ( QJSValueSpecialValue :: NullValue ) ;
1089
+ let num_value = QJSValue :: from ( 42 ) ;
1090
+
1091
+ assert ! ( null_value. is_null( ) ) ;
1092
+ assert ! ( !num_value. is_null( ) ) ;
1093
+ }
1094
+
1056
1095
#[ test]
1057
1096
fn test_is_number ( ) {
1058
1097
let string_value = QJSValue :: from ( QString :: from ( "Konqui" ) ) ;
@@ -1071,6 +1110,15 @@ mod qjsvalue_tests {
1071
1110
assert ! ( !num_value. is_string( ) ) ;
1072
1111
}
1073
1112
1113
+ #[ test]
1114
+ fn test_is_undefined ( ) {
1115
+ let undefined_value = QJSValue :: from ( QJSValueSpecialValue :: UndefinedValue ) ;
1116
+ let num_value = QJSValue :: from ( 42 ) ;
1117
+
1118
+ assert ! ( undefined_value. is_undefined( ) ) ;
1119
+ assert ! ( !num_value. is_undefined( ) ) ;
1120
+ }
1121
+
1074
1122
#[ test]
1075
1123
fn test_qvariantlist_from_iter ( ) {
1076
1124
let v = vec ! [ 1u32 , 2u32 , 3u32 ] ;
0 commit comments