json_glib/auto/
builder.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,Node};
7use glib::{prelude::*,translate::*};
8
9glib::wrapper! {
10    #[doc(alias = "JsonBuilder")]
11    pub struct Builder(Object<ffi::JsonBuilder, ffi::JsonBuilderClass>);
12
13    match fn {
14        type_ => || ffi::json_builder_get_type(),
15    }
16}
17
18impl Builder {
19        pub const NONE: Option<&'static Builder> = None;
20    
21
22    #[doc(alias = "json_builder_new")]
23    pub fn new() -> Builder {
24        assert_initialized_main_thread!();
25        unsafe {
26            from_glib_full(ffi::json_builder_new())
27        }
28    }
29
30    #[cfg(feature = "v1_2")]
31    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
32    #[doc(alias = "json_builder_new_immutable")]
33    pub fn new_immutable() -> Builder {
34        assert_initialized_main_thread!();
35        unsafe {
36            from_glib_full(ffi::json_builder_new_immutable())
37        }
38    }
39
40            // rustdoc-stripper-ignore-next
41            /// Creates a new builder-pattern struct instance to construct [`Builder`] objects.
42            ///
43            /// This method returns an instance of [`BuilderBuilder`](crate::builders::BuilderBuilder) which can be used to create [`Builder`] objects.
44            pub fn builder() -> BuilderBuilder {
45                BuilderBuilder::new()
46            }
47        
48}
49
50impl Default for Builder {
51                     fn default() -> Self {
52                         Self::new()
53                     }
54                 }
55
56// rustdoc-stripper-ignore-next
57        /// A [builder-pattern] type to construct [`Builder`] objects.
58        ///
59        /// [builder-pattern]: https://doc.rust-lang.org/1.0.0/style/ownership/builders.html
60#[must_use = "The builder must be built to be used"]
61pub struct BuilderBuilder {
62            builder: glib::object::ObjectBuilder<'static, Builder>,
63        }
64
65        impl BuilderBuilder {
66        fn new() -> Self {
67            Self { builder: glib::object::Object::builder() }
68        }
69
70                            #[cfg(feature = "v1_2")]
71    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
72    pub fn immutable(self, immutable: bool) -> Self {
73                            Self { builder: self.builder.property("immutable", immutable), }
74                        }
75
76    // rustdoc-stripper-ignore-next
77    /// Build the [`Builder`].
78    #[must_use = "Building the object from the builder is usually expensive and is not expected to have side effects"]
79    pub fn build(self) -> Builder {
80assert_initialized_main_thread!();
81    self.builder.build() }
82}
83
84pub trait BuilderExt: IsA<Builder> + 'static {
85    #[doc(alias = "json_builder_add_boolean_value")]
86#[must_use]
87    fn add_boolean_value(&self, value: bool) -> Option<Builder> {
88        unsafe {
89            from_glib_none(ffi::json_builder_add_boolean_value(self.as_ref().to_glib_none().0, value.into_glib()))
90        }
91    }
92
93    #[doc(alias = "json_builder_add_double_value")]
94#[must_use]
95    fn add_double_value(&self, value: f64) -> Option<Builder> {
96        unsafe {
97            from_glib_none(ffi::json_builder_add_double_value(self.as_ref().to_glib_none().0, value))
98        }
99    }
100
101    #[doc(alias = "json_builder_add_int_value")]
102#[must_use]
103    fn add_int_value(&self, value: i64) -> Option<Builder> {
104        unsafe {
105            from_glib_none(ffi::json_builder_add_int_value(self.as_ref().to_glib_none().0, value))
106        }
107    }
108
109    #[doc(alias = "json_builder_add_null_value")]
110#[must_use]
111    fn add_null_value(&self) -> Option<Builder> {
112        unsafe {
113            from_glib_none(ffi::json_builder_add_null_value(self.as_ref().to_glib_none().0))
114        }
115    }
116
117    #[doc(alias = "json_builder_add_string_value")]
118#[must_use]
119    fn add_string_value(&self, value: &str) -> Option<Builder> {
120        unsafe {
121            from_glib_none(ffi::json_builder_add_string_value(self.as_ref().to_glib_none().0, value.to_glib_none().0))
122        }
123    }
124
125    #[doc(alias = "json_builder_add_value")]
126#[must_use]
127    fn add_value(&self, node: Node) -> Option<Builder> {
128        unsafe {
129            from_glib_none(ffi::json_builder_add_value(self.as_ref().to_glib_none().0, node.into_glib_ptr()))
130        }
131    }
132
133    #[doc(alias = "json_builder_begin_array")]
134#[must_use]
135    fn begin_array(&self) -> Option<Builder> {
136        unsafe {
137            from_glib_none(ffi::json_builder_begin_array(self.as_ref().to_glib_none().0))
138        }
139    }
140
141    #[doc(alias = "json_builder_begin_object")]
142#[must_use]
143    fn begin_object(&self) -> Option<Builder> {
144        unsafe {
145            from_glib_none(ffi::json_builder_begin_object(self.as_ref().to_glib_none().0))
146        }
147    }
148
149    #[doc(alias = "json_builder_end_array")]
150#[must_use]
151    fn end_array(&self) -> Option<Builder> {
152        unsafe {
153            from_glib_none(ffi::json_builder_end_array(self.as_ref().to_glib_none().0))
154        }
155    }
156
157    #[doc(alias = "json_builder_end_object")]
158#[must_use]
159    fn end_object(&self) -> Option<Builder> {
160        unsafe {
161            from_glib_none(ffi::json_builder_end_object(self.as_ref().to_glib_none().0))
162        }
163    }
164
165    #[doc(alias = "json_builder_get_root")]
166    #[doc(alias = "get_root")]
167    fn root(&self) -> Option<Node> {
168        unsafe {
169            from_glib_full(ffi::json_builder_get_root(self.as_ref().to_glib_none().0))
170        }
171    }
172
173    #[doc(alias = "json_builder_reset")]
174    fn reset(&self) {
175        unsafe {
176            ffi::json_builder_reset(self.as_ref().to_glib_none().0);
177        }
178    }
179
180    #[doc(alias = "json_builder_set_member_name")]
181#[must_use]
182    fn set_member_name(&self, member_name: &str) -> Option<Builder> {
183        unsafe {
184            from_glib_none(ffi::json_builder_set_member_name(self.as_ref().to_glib_none().0, member_name.to_glib_none().0))
185        }
186    }
187
188    #[cfg(feature = "v1_2")]
189    #[cfg_attr(docsrs, doc(cfg(feature = "v1_2")))]
190    fn is_immutable(&self) -> bool {
191        ObjectExt::property(self.as_ref(), "immutable")
192    }
193}
194
195impl<O: IsA<Builder>> BuilderExt for O {}