1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from
// from gir-files (https://github.com/gtk-rs/gir-files.git)
// DO NOT EDIT

use glib::translate::*;
use std::fmt;

glib::wrapper! {
    /// An object representing a [`glib::Value`][crate::glib::Value].
    ///
    /// The [`ValueObject`][crate::ValueObject] object represents a [`glib::Value`][crate::glib::Value], allowing it
    /// to be used with [`gio::ListModel`][crate::gio::ListModel].
    ///
    /// ## Properties
    ///
    ///
    /// #### `value`
    ///  The contained value.
    ///
    /// Readable | Writeable | Construct Only
    ///
    /// # Implements
    ///
    /// [`trait@glib::ObjectExt`]
    #[doc(alias = "HdyValueObject")]
    pub struct ValueObject(Object<ffi::HdyValueObject, ffi::HdyValueObjectClass>);

    match fn {
        type_ => || ffi::hdy_value_object_get_type(),
    }
}

impl ValueObject {
    /// Creates a new [`ValueObject`][crate::ValueObject].
    /// ## `value`
    /// the value to store
    ///
    /// # Returns
    ///
    /// a new [`ValueObject`][crate::ValueObject]
    #[doc(alias = "hdy_value_object_new")]
    pub fn new(value: &glib::Value) -> ValueObject {
        assert_initialized_main_thread!();
        unsafe { from_glib_full(ffi::hdy_value_object_new(value.to_glib_none().0)) }
    }

    //#[doc(alias = "hdy_value_object_new_collect")]
    //pub fn new_collect(type_: glib::types::Type, : /*Unknown conversion*//*Unimplemented*/Basic: VarArgs) -> ValueObject {
    //    unsafe { TODO: call ffi:hdy_value_object_new_collect() }
    //}

    /// Returns the contained string if the value is of type `G_TYPE_STRING`.
    ///
    /// # Returns
    ///
    /// the contained string
    #[doc(alias = "hdy_value_object_get_string")]
    #[doc(alias = "get_string")]
    pub fn string(&self) -> Option<glib::GString> {
        unsafe { from_glib_none(ffi::hdy_value_object_get_string(self.to_glib_none().0)) }
    }

    /// Return the contained value.
    ///
    /// # Returns
    ///
    /// the contained [`glib::Value`][crate::glib::Value]
    #[doc(alias = "hdy_value_object_get_value")]
    #[doc(alias = "get_value")]
    pub fn value(&self) -> Option<glib::Value> {
        unsafe { from_glib_none(ffi::hdy_value_object_get_value(self.to_glib_none().0)) }
    }
}

impl fmt::Display for ValueObject {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        f.write_str("ValueObject")
    }
}