gio/auto/
async_result.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// DO NOT EDIT
4
5use crate::ffi;
6use glib::{prelude::*, translate::*};
7
8glib::wrapper! {
9    #[doc(alias = "GAsyncResult")]
10    pub struct AsyncResult(Interface<ffi::GAsyncResult, ffi::GAsyncResultIface>);
11
12    match fn {
13        type_ => || ffi::g_async_result_get_type(),
14    }
15}
16
17impl AsyncResult {
18    pub const NONE: Option<&'static AsyncResult> = None;
19}
20
21pub trait AsyncResultExt: IsA<AsyncResult> + 'static {
22    #[doc(alias = "g_async_result_get_source_object")]
23    #[doc(alias = "get_source_object")]
24    fn source_object(&self) -> Option<glib::Object> {
25        unsafe {
26            from_glib_full(ffi::g_async_result_get_source_object(
27                self.as_ref().to_glib_none().0,
28            ))
29        }
30    }
31
32    //#[doc(alias = "g_async_result_get_user_data")]
33    //#[doc(alias = "get_user_data")]
34    //fn user_data(&self) -> /*Unimplemented*/Option<Basic: Pointer> {
35    //    unsafe { TODO: call ffi:g_async_result_get_user_data() }
36    //}
37
38    //#[doc(alias = "g_async_result_is_tagged")]
39    //fn is_tagged(&self, source_tag: /*Unimplemented*/Option<Basic: Pointer>) -> bool {
40    //    unsafe { TODO: call ffi:g_async_result_is_tagged() }
41    //}
42
43    #[doc(alias = "g_async_result_legacy_propagate_error")]
44    fn legacy_propagate_error(&self) -> Result<(), glib::Error> {
45        unsafe {
46            let mut error = std::ptr::null_mut();
47            let is_ok = ffi::g_async_result_legacy_propagate_error(
48                self.as_ref().to_glib_none().0,
49                &mut error,
50            );
51            debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
52            if error.is_null() {
53                Ok(())
54            } else {
55                Err(from_glib_full(error))
56            }
57        }
58    }
59}
60
61impl<O: IsA<AsyncResult>> AsyncResultExt for O {}