@@ -922,13 +922,29 @@ cpp_class!(
922
922
pub unsafe struct QJSValue as "QJSValue"
923
923
) ;
924
924
925
+ /// Wrapper for [`QJSValue::SpecialValue`][qt]
926
+ ///
927
+ /// [qt]: https://doc.qt.io/qt-5/qjsvalue.html#SpecialValue-enum
928
+ #[ repr( u32 ) ]
929
+ #[ derive( Clone , Copy , Debug , PartialEq ) ]
930
+ pub enum QJSValueSpecialValue {
931
+ NullValue = 0 ,
932
+ UndefinedValue = 1 ,
933
+ }
934
+
925
935
impl QJSValue {
926
936
pub fn is_bool ( & self ) -> bool {
927
937
cpp ! ( unsafe [ self as "const QJSValue *" ] -> bool as "bool" {
928
938
return self ->isBool( ) ;
929
939
} )
930
940
}
931
941
942
+ pub fn is_null ( & self ) -> bool {
943
+ cpp ! ( unsafe [ self as "const QJSValue *" ] -> bool as "bool" {
944
+ return self ->isNull( ) ;
945
+ } )
946
+ }
947
+
932
948
pub fn is_number ( & self ) -> bool {
933
949
cpp ! ( unsafe [ self as "const QJSValue *" ] -> bool as "bool" {
934
950
return self ->isNumber( ) ;
@@ -941,6 +957,12 @@ impl QJSValue {
941
957
} )
942
958
}
943
959
960
+ pub fn is_undefined ( & self ) -> bool {
961
+ cpp ! ( unsafe [ self as "const QJSValue *" ] -> bool as "bool" {
962
+ return self ->isUndefined( ) ;
963
+ } )
964
+ }
965
+
944
966
pub fn to_string ( & self ) -> QString {
945
967
cpp ! ( unsafe [ self as "const QJSValue *" ] -> QString as "QString" {
946
968
return self ->toString( ) ;
@@ -1022,6 +1044,14 @@ impl From<bool> for QJSValue {
1022
1044
}
1023
1045
}
1024
1046
1047
+ impl From < QJSValueSpecialValue > for QJSValue {
1048
+ fn from ( a : QJSValueSpecialValue ) -> QJSValue {
1049
+ cpp ! ( unsafe [ a as "QJSValue::SpecialValue" ] -> QJSValue as "QJSValue" {
1050
+ return QJSValue ( a) ;
1051
+ } )
1052
+ }
1053
+ }
1054
+
1025
1055
impl QMetaType for QJSValue {
1026
1056
fn register ( _name : Option < & CStr > ) -> i32 {
1027
1057
cpp ! ( unsafe [ ] -> i32 as "int" { return qMetaTypeId<QJSValue >( ) ; } )
@@ -1049,6 +1079,15 @@ mod qjsvalue_tests {
1049
1079
assert ! ( !num_value. is_bool( ) ) ;
1050
1080
}
1051
1081
1082
+ #[ test]
1083
+ fn test_is_null ( ) {
1084
+ let null_value = QJSValue :: from ( QJSValueSpecialValue :: NullValue ) ;
1085
+ let num_value = QJSValue :: from ( 42 ) ;
1086
+
1087
+ assert ! ( null_value. is_null( ) ) ;
1088
+ assert ! ( !num_value. is_null( ) ) ;
1089
+ }
1090
+
1052
1091
#[ test]
1053
1092
fn test_is_number ( ) {
1054
1093
let string_value = QJSValue :: from ( QString :: from ( "Konqui" ) ) ;
@@ -1067,6 +1106,15 @@ mod qjsvalue_tests {
1067
1106
assert ! ( !num_value. is_string( ) ) ;
1068
1107
}
1069
1108
1109
+ #[ test]
1110
+ fn test_is_undefined ( ) {
1111
+ let undefined_value = QJSValue :: from ( QJSValueSpecialValue :: UndefinedValue ) ;
1112
+ let num_value = QJSValue :: from ( 42 ) ;
1113
+
1114
+ assert ! ( undefined_value. is_undefined( ) ) ;
1115
+ assert ! ( !num_value. is_undefined( ) ) ;
1116
+ }
1117
+
1070
1118
#[ test]
1071
1119
fn test_qvariantlist_from_iter ( ) {
1072
1120
let v = vec ! [ 1u32 , 2u32 , 3u32 ] ;
0 commit comments