gdk4/content_provider.rs
1// Take a look at the license at the top of the repository in the LICENSE file.
2
3use glib::translate::*;
4
5use crate::{ffi, prelude::*, ContentProvider};
6
7// rustdoc-stripper-ignore-next
8/// Trait containing manually implemented methods of
9/// [`ContentProvider`](crate::ContentProvider).
10pub trait ContentProviderExtManual: IsA<ContentProvider> {
11 #[doc(alias = "gdk_content_provider_get_value")]
12 fn value(&self, type_: glib::Type) -> Result<glib::Value, glib::Error> {
13 unsafe {
14 let mut error = std::ptr::null_mut();
15 let mut value = glib::Value::from_type(type_);
16 let _ = ffi::gdk_content_provider_get_value(
17 self.as_ref().to_glib_none().0,
18 value.to_glib_none_mut().0,
19 &mut error,
20 );
21 if error.is_null() {
22 Ok(value)
23 } else {
24 Err(from_glib_full(error))
25 }
26 }
27 }
28}
29
30impl<O: IsA<ContentProvider>> ContentProviderExtManual for O {}