Skip to main content

tracker/auto/
resource.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from
3// from gir-files (https://github.com/gtk-rs/gir-files.git)
4// DO NOT EDIT
5#![allow(deprecated)]
6
7#[cfg(feature = "v3_4")]
8#[cfg_attr(docsrs, doc(cfg(feature = "v3_4")))]
9use crate::RdfFormat;
10use crate::{ffi, NamespaceManager};
11use glib::{
12    prelude::*,
13    signal::{connect_raw, SignalHandlerId},
14    translate::*,
15};
16use std::boxed::Box as Box_;
17
18glib::wrapper! {
19    #[doc(alias = "TrackerResource")]
20    pub struct Resource(Object<ffi::TrackerResource, ffi::TrackerResourceClass>);
21
22    match fn {
23        type_ => || ffi::tracker_resource_get_type(),
24    }
25}
26
27impl Resource {
28    #[doc(alias = "tracker_resource_new")]
29    pub fn new(identifier: Option<&str>) -> Resource {
30        assert_initialized_main_thread!();
31        unsafe { from_glib_full(ffi::tracker_resource_new(identifier.to_glib_none().0)) }
32    }
33
34    // rustdoc-stripper-ignore-next
35    /// Creates a new builder-pattern struct instance to construct [`Resource`] objects.
36    ///
37    /// This method returns an instance of [`ResourceBuilder`](crate::builders::ResourceBuilder) which can be used to create [`Resource`] objects.
38    pub fn builder() -> ResourceBuilder {
39        ResourceBuilder::new()
40    }
41
42    #[doc(alias = "tracker_resource_add_boolean")]
43    pub fn add_boolean(&self, property_uri: &str, value: bool) {
44        unsafe {
45            ffi::tracker_resource_add_boolean(
46                self.to_glib_none().0,
47                property_uri.to_glib_none().0,
48                value.into_glib(),
49            );
50        }
51    }
52
53    #[cfg(feature = "v3_2")]
54    #[cfg_attr(docsrs, doc(cfg(feature = "v3_2")))]
55    #[doc(alias = "tracker_resource_add_datetime")]
56    pub fn add_datetime(&self, property_uri: &str, value: &glib::DateTime) {
57        unsafe {
58            ffi::tracker_resource_add_datetime(
59                self.to_glib_none().0,
60                property_uri.to_glib_none().0,
61                value.to_glib_none().0,
62            );
63        }
64    }
65
66    #[doc(alias = "tracker_resource_add_double")]
67    pub fn add_double(&self, property_uri: &str, value: f64) {
68        unsafe {
69            ffi::tracker_resource_add_double(
70                self.to_glib_none().0,
71                property_uri.to_glib_none().0,
72                value,
73            );
74        }
75    }
76
77    #[doc(alias = "tracker_resource_add_gvalue")]
78    pub fn add_gvalue(&self, property_uri: &str, value: &glib::Value) {
79        unsafe {
80            ffi::tracker_resource_add_gvalue(
81                self.to_glib_none().0,
82                property_uri.to_glib_none().0,
83                value.to_glib_none().0,
84            );
85        }
86    }
87
88    #[doc(alias = "tracker_resource_add_int")]
89    pub fn add_int(&self, property_uri: &str, value: i32) {
90        unsafe {
91            ffi::tracker_resource_add_int(
92                self.to_glib_none().0,
93                property_uri.to_glib_none().0,
94                value,
95            );
96        }
97    }
98
99    #[doc(alias = "tracker_resource_add_int64")]
100    pub fn add_int64(&self, property_uri: &str, value: i64) {
101        unsafe {
102            ffi::tracker_resource_add_int64(
103                self.to_glib_none().0,
104                property_uri.to_glib_none().0,
105                value,
106            );
107        }
108    }
109
110    #[doc(alias = "tracker_resource_add_relation")]
111    pub fn add_relation(&self, property_uri: &str, resource: &Resource) {
112        unsafe {
113            ffi::tracker_resource_add_relation(
114                self.to_glib_none().0,
115                property_uri.to_glib_none().0,
116                resource.to_glib_none().0,
117            );
118        }
119    }
120
121    #[doc(alias = "tracker_resource_add_string")]
122    pub fn add_string(&self, property_uri: &str, value: &str) {
123        unsafe {
124            ffi::tracker_resource_add_string(
125                self.to_glib_none().0,
126                property_uri.to_glib_none().0,
127                value.to_glib_none().0,
128            );
129        }
130    }
131
132    #[doc(alias = "tracker_resource_add_take_relation")]
133    pub fn add_take_relation(&self, property_uri: &str, resource: Resource) {
134        unsafe {
135            ffi::tracker_resource_add_take_relation(
136                self.to_glib_none().0,
137                property_uri.to_glib_none().0,
138                resource.into_glib_ptr(),
139            );
140        }
141    }
142
143    #[doc(alias = "tracker_resource_add_uri")]
144    pub fn add_uri(&self, property_uri: &str, value: &str) {
145        unsafe {
146            ffi::tracker_resource_add_uri(
147                self.to_glib_none().0,
148                property_uri.to_glib_none().0,
149                value.to_glib_none().0,
150            );
151        }
152    }
153
154    #[doc(alias = "tracker_resource_get_first_boolean")]
155    #[doc(alias = "get_first_boolean")]
156    pub fn is_first_boolean(&self, property_uri: &str) -> bool {
157        unsafe {
158            from_glib(ffi::tracker_resource_get_first_boolean(
159                self.to_glib_none().0,
160                property_uri.to_glib_none().0,
161            ))
162        }
163    }
164
165    #[cfg(feature = "v3_2")]
166    #[cfg_attr(docsrs, doc(cfg(feature = "v3_2")))]
167    #[doc(alias = "tracker_resource_get_first_datetime")]
168    #[doc(alias = "get_first_datetime")]
169    pub fn first_datetime(&self, property_uri: &str) -> Option<glib::DateTime> {
170        unsafe {
171            from_glib_none(ffi::tracker_resource_get_first_datetime(
172                self.to_glib_none().0,
173                property_uri.to_glib_none().0,
174            ))
175        }
176    }
177
178    #[doc(alias = "tracker_resource_get_first_double")]
179    #[doc(alias = "get_first_double")]
180    pub fn first_double(&self, property_uri: &str) -> f64 {
181        unsafe {
182            ffi::tracker_resource_get_first_double(
183                self.to_glib_none().0,
184                property_uri.to_glib_none().0,
185            )
186        }
187    }
188
189    #[doc(alias = "tracker_resource_get_first_int")]
190    #[doc(alias = "get_first_int")]
191    pub fn first_int(&self, property_uri: &str) -> i32 {
192        unsafe {
193            ffi::tracker_resource_get_first_int(
194                self.to_glib_none().0,
195                property_uri.to_glib_none().0,
196            )
197        }
198    }
199
200    #[doc(alias = "tracker_resource_get_first_int64")]
201    #[doc(alias = "get_first_int64")]
202    pub fn first_int64(&self, property_uri: &str) -> i64 {
203        unsafe {
204            ffi::tracker_resource_get_first_int64(
205                self.to_glib_none().0,
206                property_uri.to_glib_none().0,
207            )
208        }
209    }
210
211    #[doc(alias = "tracker_resource_get_first_relation")]
212    #[doc(alias = "get_first_relation")]
213    #[must_use]
214    pub fn first_relation(&self, property_uri: &str) -> Option<Resource> {
215        unsafe {
216            from_glib_none(ffi::tracker_resource_get_first_relation(
217                self.to_glib_none().0,
218                property_uri.to_glib_none().0,
219            ))
220        }
221    }
222
223    #[doc(alias = "tracker_resource_get_first_string")]
224    #[doc(alias = "get_first_string")]
225    pub fn first_string(&self, property_uri: &str) -> Option<glib::GString> {
226        unsafe {
227            from_glib_none(ffi::tracker_resource_get_first_string(
228                self.to_glib_none().0,
229                property_uri.to_glib_none().0,
230            ))
231        }
232    }
233
234    #[doc(alias = "tracker_resource_get_first_uri")]
235    #[doc(alias = "get_first_uri")]
236    pub fn first_uri(&self, property_uri: &str) -> Option<glib::GString> {
237        unsafe {
238            from_glib_none(ffi::tracker_resource_get_first_uri(
239                self.to_glib_none().0,
240                property_uri.to_glib_none().0,
241            ))
242        }
243    }
244
245    #[doc(alias = "tracker_resource_get_identifier")]
246    #[doc(alias = "get_identifier")]
247    pub fn identifier(&self) -> Option<glib::GString> {
248        unsafe { from_glib_none(ffi::tracker_resource_get_identifier(self.to_glib_none().0)) }
249    }
250
251    #[doc(alias = "tracker_resource_get_properties")]
252    #[doc(alias = "get_properties")]
253    pub fn properties(&self) -> Vec<glib::GString> {
254        unsafe {
255            FromGlibPtrContainer::from_glib_container(ffi::tracker_resource_get_properties(
256                self.to_glib_none().0,
257            ))
258        }
259    }
260
261    #[cfg(feature = "v3_1")]
262    #[cfg_attr(docsrs, doc(cfg(feature = "v3_1")))]
263    #[doc(alias = "tracker_resource_get_property_overwrite")]
264    #[doc(alias = "get_property_overwrite")]
265    pub fn is_property_overwrite(&self, property_uri: &str) -> bool {
266        unsafe {
267            from_glib(ffi::tracker_resource_get_property_overwrite(
268                self.to_glib_none().0,
269                property_uri.to_glib_none().0,
270            ))
271        }
272    }
273
274    #[doc(alias = "tracker_resource_identifier_compare_func")]
275    pub fn identifier_compare_func(&self, identifier: &str) -> i32 {
276        unsafe {
277            ffi::tracker_resource_identifier_compare_func(
278                self.to_glib_none().0,
279                identifier.to_glib_none().0,
280            )
281        }
282    }
283
284    #[cfg_attr(feature = "v3_5", deprecated = "Since 3.5")]
285    #[allow(deprecated)]
286    #[doc(alias = "tracker_resource_print_jsonld")]
287    pub fn print_jsonld(&self, namespaces: Option<&NamespaceManager>) -> Option<glib::GString> {
288        unsafe {
289            from_glib_full(ffi::tracker_resource_print_jsonld(
290                self.to_glib_none().0,
291                namespaces.to_glib_none().0,
292            ))
293        }
294    }
295
296    #[cfg(feature = "v3_4")]
297    #[cfg_attr(docsrs, doc(cfg(feature = "v3_4")))]
298    #[doc(alias = "tracker_resource_print_rdf")]
299    pub fn print_rdf(
300        &self,
301        namespaces: &NamespaceManager,
302        format: RdfFormat,
303        graph: Option<&str>,
304    ) -> Option<glib::GString> {
305        unsafe {
306            from_glib_full(ffi::tracker_resource_print_rdf(
307                self.to_glib_none().0,
308                namespaces.to_glib_none().0,
309                format.into_glib(),
310                graph.to_glib_none().0,
311            ))
312        }
313    }
314
315    #[doc(alias = "tracker_resource_print_sparql_update")]
316    pub fn print_sparql_update(
317        &self,
318        namespaces: Option<&NamespaceManager>,
319        graph_id: Option<&str>,
320    ) -> Option<glib::GString> {
321        unsafe {
322            from_glib_full(ffi::tracker_resource_print_sparql_update(
323                self.to_glib_none().0,
324                namespaces.to_glib_none().0,
325                graph_id.to_glib_none().0,
326            ))
327        }
328    }
329
330    #[cfg_attr(feature = "v3_4", deprecated = "Since 3.4")]
331    #[allow(deprecated)]
332    #[doc(alias = "tracker_resource_print_turtle")]
333    pub fn print_turtle(&self, namespaces: Option<&NamespaceManager>) -> Option<glib::GString> {
334        unsafe {
335            from_glib_full(ffi::tracker_resource_print_turtle(
336                self.to_glib_none().0,
337                namespaces.to_glib_none().0,
338            ))
339        }
340    }
341
342    #[doc(alias = "tracker_resource_serialize")]
343    pub fn serialize(&self) -> Option<glib::Variant> {
344        unsafe { from_glib_none(ffi::tracker_resource_serialize(self.to_glib_none().0)) }
345    }
346
347    #[doc(alias = "tracker_resource_set_boolean")]
348    pub fn set_boolean(&self, property_uri: &str, value: bool) {
349        unsafe {
350            ffi::tracker_resource_set_boolean(
351                self.to_glib_none().0,
352                property_uri.to_glib_none().0,
353                value.into_glib(),
354            );
355        }
356    }
357
358    #[cfg(feature = "v3_2")]
359    #[cfg_attr(docsrs, doc(cfg(feature = "v3_2")))]
360    #[doc(alias = "tracker_resource_set_datetime")]
361    pub fn set_datetime(&self, property_uri: &str, value: &glib::DateTime) {
362        unsafe {
363            ffi::tracker_resource_set_datetime(
364                self.to_glib_none().0,
365                property_uri.to_glib_none().0,
366                value.to_glib_none().0,
367            );
368        }
369    }
370
371    #[doc(alias = "tracker_resource_set_double")]
372    pub fn set_double(&self, property_uri: &str, value: f64) {
373        unsafe {
374            ffi::tracker_resource_set_double(
375                self.to_glib_none().0,
376                property_uri.to_glib_none().0,
377                value,
378            );
379        }
380    }
381
382    #[doc(alias = "tracker_resource_set_gvalue")]
383    pub fn set_gvalue(&self, property_uri: &str, value: &glib::Value) {
384        unsafe {
385            ffi::tracker_resource_set_gvalue(
386                self.to_glib_none().0,
387                property_uri.to_glib_none().0,
388                value.to_glib_none().0,
389            );
390        }
391    }
392
393    #[doc(alias = "tracker_resource_set_identifier")]
394    #[doc(alias = "identifier")]
395    pub fn set_identifier(&self, identifier: Option<&str>) {
396        unsafe {
397            ffi::tracker_resource_set_identifier(
398                self.to_glib_none().0,
399                identifier.to_glib_none().0,
400            );
401        }
402    }
403
404    #[doc(alias = "tracker_resource_set_int")]
405    pub fn set_int(&self, property_uri: &str, value: i32) {
406        unsafe {
407            ffi::tracker_resource_set_int(
408                self.to_glib_none().0,
409                property_uri.to_glib_none().0,
410                value,
411            );
412        }
413    }
414
415    #[doc(alias = "tracker_resource_set_int64")]
416    pub fn set_int64(&self, property_uri: &str, value: i64) {
417        unsafe {
418            ffi::tracker_resource_set_int64(
419                self.to_glib_none().0,
420                property_uri.to_glib_none().0,
421                value,
422            );
423        }
424    }
425
426    #[doc(alias = "tracker_resource_set_relation")]
427    pub fn set_relation(&self, property_uri: &str, resource: &Resource) {
428        unsafe {
429            ffi::tracker_resource_set_relation(
430                self.to_glib_none().0,
431                property_uri.to_glib_none().0,
432                resource.to_glib_none().0,
433            );
434        }
435    }
436
437    #[doc(alias = "tracker_resource_set_string")]
438    pub fn set_string(&self, property_uri: &str, value: &str) {
439        unsafe {
440            ffi::tracker_resource_set_string(
441                self.to_glib_none().0,
442                property_uri.to_glib_none().0,
443                value.to_glib_none().0,
444            );
445        }
446    }
447
448    #[doc(alias = "tracker_resource_set_take_relation")]
449    pub fn set_take_relation(&self, property_uri: &str, resource: Resource) {
450        unsafe {
451            ffi::tracker_resource_set_take_relation(
452                self.to_glib_none().0,
453                property_uri.to_glib_none().0,
454                resource.into_glib_ptr(),
455            );
456        }
457    }
458
459    #[doc(alias = "tracker_resource_set_uri")]
460    pub fn set_uri(&self, property_uri: &str, value: &str) {
461        unsafe {
462            ffi::tracker_resource_set_uri(
463                self.to_glib_none().0,
464                property_uri.to_glib_none().0,
465                value.to_glib_none().0,
466            );
467        }
468    }
469
470    #[doc(alias = "tracker_resource_deserialize")]
471    pub fn deserialize(variant: &glib::Variant) -> Option<Resource> {
472        assert_initialized_main_thread!();
473        unsafe { from_glib_full(ffi::tracker_resource_deserialize(variant.to_glib_none().0)) }
474    }
475
476    #[doc(alias = "identifier")]
477    pub fn connect_identifier_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
478        unsafe extern "C" fn notify_identifier_trampoline<F: Fn(&Resource) + 'static>(
479            this: *mut ffi::TrackerResource,
480            _param_spec: glib::ffi::gpointer,
481            f: glib::ffi::gpointer,
482        ) {
483            unsafe {
484                let f: &F = &*(f as *const F);
485                f(&from_glib_borrow(this))
486            }
487        }
488        unsafe {
489            let f: Box_<F> = Box_::new(f);
490            connect_raw(
491                self.as_ptr() as *mut _,
492                c"notify::identifier".as_ptr(),
493                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
494                    notify_identifier_trampoline::<F> as *const (),
495                )),
496                Box_::into_raw(f),
497            )
498        }
499    }
500}
501
502impl Default for Resource {
503    fn default() -> Self {
504        glib::object::Object::new::<Self>()
505    }
506}
507
508// rustdoc-stripper-ignore-next
509/// A [builder-pattern] type to construct [`Resource`] objects.
510///
511/// [builder-pattern]: https://doc.rust-lang.org/1.0.0/style/ownership/builders.html
512#[must_use = "The builder must be built to be used"]
513pub struct ResourceBuilder {
514    builder: glib::object::ObjectBuilder<'static, Resource>,
515}
516
517impl ResourceBuilder {
518    fn new() -> Self {
519        Self {
520            builder: glib::object::Object::builder(),
521        }
522    }
523
524    pub fn identifier(self, identifier: impl Into<glib::GString>) -> Self {
525        Self {
526            builder: self.builder.property("identifier", identifier.into()),
527        }
528    }
529
530    // rustdoc-stripper-ignore-next
531    /// Build the [`Resource`].
532    #[must_use = "Building the object from the builder is usually expensive and is not expected to have side effects"]
533    pub fn build(self) -> Resource {
534        assert_initialized_main_thread!();
535        self.builder.build()
536    }
537}