json_glib/auto/
object.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir
3// from gtk-girs (https://github.com/gtk-rs/gir-files)
4// DO NOT EDIT
5
6use crate::{ffi,Array,Node};
7use glib::{translate::*};
8
9glib::wrapper! {
10    #[derive(Debug, PartialOrd, Ord)]
11    pub struct Object(Shared<ffi::JsonObject>);
12
13    match fn {
14        ref => |ptr| ffi::json_object_ref(ptr),
15        unref => |ptr| ffi::json_object_unref(ptr),
16        type_ => || ffi::json_object_get_type(),
17    }
18}
19
20impl Object {
21    #[doc(alias = "json_object_new")]
22    pub fn new() -> Object {
23        assert_initialized_main_thread!();
24        unsafe {
25            from_glib_full(ffi::json_object_new())
26        }
27    }
28
29    #[doc(alias = "json_object_dup_member")]
30    pub fn dup_member(&self, member_name: &str) -> Option<Node> {
31        unsafe {
32            from_glib_full(ffi::json_object_dup_member(self.to_glib_none().0, member_name.to_glib_none().0))
33        }
34    }
35
36    #[cfg(feature = "v1_2")]
37    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
38    #[doc(alias = "json_object_equal")]
39     fn equal(&self, b: &Object) -> bool {
40        unsafe {
41            from_glib(ffi::json_object_equal(ToGlibPtr::<*mut ffi::JsonObject>::to_glib_none(self).0 as glib::ffi::gconstpointer, ToGlibPtr::<*mut ffi::JsonObject>::to_glib_none(b).0 as glib::ffi::gconstpointer))
42        }
43    }
44
45    #[doc(alias = "json_object_foreach_member")]
46    pub fn foreach_member<P: FnMut(&Object, &str, &Node)>(&self, func: P) {
47        let mut func_data: P = func;
48        unsafe extern "C" fn func_func<P: FnMut(&Object, &str, &Node)>(object: *mut ffi::JsonObject, member_name: *const std::ffi::c_char, member_node: *mut ffi::JsonNode, user_data: glib::ffi::gpointer) {
49            let object = from_glib_borrow(object);
50            let member_name: Borrowed<glib::GString> = from_glib_borrow(member_name);
51            let member_node = from_glib_borrow(member_node);
52            let callback = user_data as *mut P;
53            (*callback)(&object, member_name.as_str(), &member_node)
54        }
55        let func = Some(func_func::<P> as _);
56        let super_callback0: &mut P = &mut func_data;
57        unsafe {
58            ffi::json_object_foreach_member(self.to_glib_none().0, func, super_callback0 as *mut _ as *mut _);
59        }
60    }
61
62    #[doc(alias = "json_object_get_array_member")]
63    #[doc(alias = "get_array_member")]
64    pub fn array_member(&self, member_name: &str) -> Option<Array> {
65        unsafe {
66            from_glib_none(ffi::json_object_get_array_member(self.to_glib_none().0, member_name.to_glib_none().0))
67        }
68    }
69
70    #[doc(alias = "json_object_get_boolean_member")]
71    #[doc(alias = "get_boolean_member")]
72    pub fn is_boolean_member(&self, member_name: &str) -> bool {
73        unsafe {
74            from_glib(ffi::json_object_get_boolean_member(self.to_glib_none().0, member_name.to_glib_none().0))
75        }
76    }
77
78    #[cfg(feature = "v1_6")]
79    #[cfg_attr(docsrs, doc(cfg(feature = "v1_6")))]
80    #[doc(alias = "json_object_get_boolean_member_with_default")]
81    #[doc(alias = "get_boolean_member_with_default")]
82    pub fn is_boolean_member_with_default(&self, member_name: &str, default_value: bool) -> bool {
83        unsafe {
84            from_glib(ffi::json_object_get_boolean_member_with_default(self.to_glib_none().0, member_name.to_glib_none().0, default_value.into_glib()))
85        }
86    }
87
88    #[doc(alias = "json_object_get_double_member")]
89    #[doc(alias = "get_double_member")]
90    pub fn double_member(&self, member_name: &str) -> f64 {
91        unsafe {
92            ffi::json_object_get_double_member(self.to_glib_none().0, member_name.to_glib_none().0)
93        }
94    }
95
96    #[cfg(feature = "v1_6")]
97    #[cfg_attr(docsrs, doc(cfg(feature = "v1_6")))]
98    #[doc(alias = "json_object_get_double_member_with_default")]
99    #[doc(alias = "get_double_member_with_default")]
100    pub fn double_member_with_default(&self, member_name: &str, default_value: f64) -> f64 {
101        unsafe {
102            ffi::json_object_get_double_member_with_default(self.to_glib_none().0, member_name.to_glib_none().0, default_value)
103        }
104    }
105
106    #[doc(alias = "json_object_get_int_member")]
107    #[doc(alias = "get_int_member")]
108    pub fn int_member(&self, member_name: &str) -> i64 {
109        unsafe {
110            ffi::json_object_get_int_member(self.to_glib_none().0, member_name.to_glib_none().0)
111        }
112    }
113
114    #[cfg(feature = "v1_6")]
115    #[cfg_attr(docsrs, doc(cfg(feature = "v1_6")))]
116    #[doc(alias = "json_object_get_int_member_with_default")]
117    #[doc(alias = "get_int_member_with_default")]
118    pub fn int_member_with_default(&self, member_name: &str, default_value: i64) -> i64 {
119        unsafe {
120            ffi::json_object_get_int_member_with_default(self.to_glib_none().0, member_name.to_glib_none().0, default_value)
121        }
122    }
123
124    #[doc(alias = "json_object_get_member")]
125    #[doc(alias = "get_member")]
126    pub fn member(&self, member_name: &str) -> Option<Node> {
127        unsafe {
128            from_glib_none(ffi::json_object_get_member(self.to_glib_none().0, member_name.to_glib_none().0))
129        }
130    }
131
132    #[doc(alias = "json_object_get_members")]
133    #[doc(alias = "get_members")]
134    pub fn members(&self) -> Vec<glib::GString> {
135        unsafe {
136            FromGlibPtrContainer::from_glib_container(ffi::json_object_get_members(self.to_glib_none().0))
137        }
138    }
139
140    #[doc(alias = "json_object_get_null_member")]
141    #[doc(alias = "get_null_member")]
142    pub fn is_null_member(&self, member_name: &str) -> bool {
143        unsafe {
144            from_glib(ffi::json_object_get_null_member(self.to_glib_none().0, member_name.to_glib_none().0))
145        }
146    }
147
148    #[doc(alias = "json_object_get_object_member")]
149    #[doc(alias = "get_object_member")]
150#[must_use]
151    pub fn object_member(&self, member_name: &str) -> Option<Object> {
152        unsafe {
153            from_glib_none(ffi::json_object_get_object_member(self.to_glib_none().0, member_name.to_glib_none().0))
154        }
155    }
156
157    #[doc(alias = "json_object_get_size")]
158    #[doc(alias = "get_size")]
159    pub fn size(&self) -> u32 {
160        unsafe {
161            ffi::json_object_get_size(self.to_glib_none().0)
162        }
163    }
164
165    #[doc(alias = "json_object_get_string_member")]
166    #[doc(alias = "get_string_member")]
167    pub fn string_member(&self, member_name: &str) -> glib::GString {
168        unsafe {
169            from_glib_none(ffi::json_object_get_string_member(self.to_glib_none().0, member_name.to_glib_none().0))
170        }
171    }
172
173    #[cfg(feature = "v1_6")]
174    #[cfg_attr(docsrs, doc(cfg(feature = "v1_6")))]
175    #[doc(alias = "json_object_get_string_member_with_default")]
176    #[doc(alias = "get_string_member_with_default")]
177    pub fn string_member_with_default(&self, member_name: &str, default_value: &str) -> glib::GString {
178        unsafe {
179            from_glib_none(ffi::json_object_get_string_member_with_default(self.to_glib_none().0, member_name.to_glib_none().0, default_value.to_glib_none().0))
180        }
181    }
182
183    #[doc(alias = "json_object_get_values")]
184    #[doc(alias = "get_values")]
185    pub fn values(&self) -> Vec<Node> {
186        unsafe {
187            FromGlibPtrContainer::from_glib_container(ffi::json_object_get_values(self.to_glib_none().0))
188        }
189    }
190
191    #[doc(alias = "json_object_has_member")]
192    pub fn has_member(&self, member_name: &str) -> bool {
193        unsafe {
194            from_glib(ffi::json_object_has_member(self.to_glib_none().0, member_name.to_glib_none().0))
195        }
196    }
197
198    #[cfg(feature = "v1_2")]
199    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
200    #[doc(alias = "json_object_hash")]
201     fn hash(&self) -> u32 {
202        unsafe {
203            ffi::json_object_hash(ToGlibPtr::<*mut ffi::JsonObject>::to_glib_none(self).0 as glib::ffi::gconstpointer)
204        }
205    }
206
207    #[cfg(feature = "v1_2")]
208    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
209    #[doc(alias = "json_object_is_immutable")]
210    pub fn is_immutable(&self) -> bool {
211        unsafe {
212            from_glib(ffi::json_object_is_immutable(self.to_glib_none().0))
213        }
214    }
215
216    #[doc(alias = "json_object_remove_member")]
217    pub fn remove_member(&self, member_name: &str) {
218        unsafe {
219            ffi::json_object_remove_member(self.to_glib_none().0, member_name.to_glib_none().0);
220        }
221    }
222
223    #[cfg(feature = "v1_2")]
224    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
225    #[doc(alias = "json_object_seal")]
226    pub fn seal(&self) {
227        unsafe {
228            ffi::json_object_seal(self.to_glib_none().0);
229        }
230    }
231
232    #[doc(alias = "json_object_set_array_member")]
233    pub fn set_array_member(&self, member_name: &str, value: Array) {
234        unsafe {
235            ffi::json_object_set_array_member(self.to_glib_none().0, member_name.to_glib_none().0, value.into_glib_ptr());
236        }
237    }
238
239    #[doc(alias = "json_object_set_boolean_member")]
240    pub fn set_boolean_member(&self, member_name: &str, value: bool) {
241        unsafe {
242            ffi::json_object_set_boolean_member(self.to_glib_none().0, member_name.to_glib_none().0, value.into_glib());
243        }
244    }
245
246    #[doc(alias = "json_object_set_double_member")]
247    pub fn set_double_member(&self, member_name: &str, value: f64) {
248        unsafe {
249            ffi::json_object_set_double_member(self.to_glib_none().0, member_name.to_glib_none().0, value);
250        }
251    }
252
253    #[doc(alias = "json_object_set_int_member")]
254    pub fn set_int_member(&self, member_name: &str, value: i64) {
255        unsafe {
256            ffi::json_object_set_int_member(self.to_glib_none().0, member_name.to_glib_none().0, value);
257        }
258    }
259
260    #[doc(alias = "json_object_set_member")]
261    pub fn set_member(&self, member_name: &str, node: Node) {
262        unsafe {
263            ffi::json_object_set_member(self.to_glib_none().0, member_name.to_glib_none().0, node.into_glib_ptr());
264        }
265    }
266
267    #[doc(alias = "json_object_set_null_member")]
268    pub fn set_null_member(&self, member_name: &str) {
269        unsafe {
270            ffi::json_object_set_null_member(self.to_glib_none().0, member_name.to_glib_none().0);
271        }
272    }
273
274    #[doc(alias = "json_object_set_object_member")]
275    pub fn set_object_member(&self, member_name: &str, value: Object) {
276        unsafe {
277            ffi::json_object_set_object_member(self.to_glib_none().0, member_name.to_glib_none().0, value.into_glib_ptr());
278        }
279    }
280
281    #[doc(alias = "json_object_set_string_member")]
282    pub fn set_string_member(&self, member_name: &str, value: &str) {
283        unsafe {
284            ffi::json_object_set_string_member(self.to_glib_none().0, member_name.to_glib_none().0, value.to_glib_none().0);
285        }
286    }
287}
288
289impl Default for Object {
290                     fn default() -> Self {
291                         Self::new()
292                     }
293                 }
294
295#[cfg(feature = "v1_2")]
296#[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
297impl PartialEq for Object {
298    #[inline]
299    fn eq(&self, other: &Self) -> bool {
300        self.equal(other)
301    }
302}
303#[cfg(feature = "v1_2")]
304#[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
305
306impl Eq for Object {}
307
308#[cfg(feature = "v1_2")]
309#[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
310impl std::hash::Hash for Object {
311    #[inline]
312    fn hash<H>(&self, state: &mut H) where H: std::hash::Hasher {
313        std::hash::Hash::hash(&self.hash(), state)
314    }
315}