@@ -101,6 +101,8 @@ mod foo {
101
101
double : RefCell < f64 > ,
102
102
#[ property( get, set) ]
103
103
string_vec : RefCell < Vec < String > > ,
104
+ #[ property( get, set, builder( glib:: VariantTy :: DOUBLE ) ) ]
105
+ variant : RefCell < Option < glib:: Variant > > ,
104
106
#[ property( get = |_| 42.0 , set) ]
105
107
infer_inline_type : RefCell < f64 > ,
106
108
// The following property doesn't store any data. The value of the property is calculated
@@ -204,6 +206,8 @@ fn props() {
204
206
assert_eq ! ( bar, "" . to_string( ) ) ;
205
207
let string_vec: Vec < String > = myfoo. property ( "string-vec" ) ;
206
208
assert ! ( string_vec. is_empty( ) ) ;
209
+ let var: Option < glib:: Variant > = myfoo. property ( "variant" ) ;
210
+ assert ! ( var. is_none( ) ) ;
207
211
208
212
// Set values
209
213
myfoo. set_property ( "bar" , "epic" . to_value ( ) ) ;
@@ -215,6 +219,10 @@ fn props() {
215
219
string_vec,
216
220
vec![ "epic" . to_string( ) , "more epic" . to_string( ) ]
217
221
) ;
222
+ let myv = Some ( 2.0f64 . to_variant ( ) ) ;
223
+ myfoo. set_property ( "variant" , & myv) ;
224
+ let var: Option < glib:: Variant > = myfoo. property ( "variant" ) ;
225
+ assert_eq ! ( var, myv) ;
218
226
219
227
// Custom getter
220
228
let buzz: String = myfoo. property ( "buzz" ) ;
0 commit comments