gdk4/content_serializer.rs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
// Take a look at the license at the top of the repository in the LICENSE file.
use glib::{translate::*, value::FromValue};
use crate::{ffi, ContentSerializer};
impl ContentSerializer {
/// Gets the I/O priority for the current operation.
///
/// This is the priority that was passed to [`content_serialize_async()`][crate::content_serialize_async()].
///
/// # Returns
///
/// the I/O priority for the current operation
#[doc(alias = "gdk_content_serializer_get_priority")]
#[doc(alias = "get_priority")]
pub fn priority(&self) -> glib::Priority {
unsafe {
from_glib(ffi::gdk_content_serializer_get_priority(
self.to_glib_none().0,
))
}
}
// rustdoc-stripper-ignore-next
/// Similar to [`Self::value`] but panics if the value is of a different
/// type.
#[doc(alias = "gdk_content_serializer_get_value")]
#[doc(alias = "get_value")]
pub fn value_as<V: for<'b> FromValue<'b> + 'static>(&self) -> V {
self.value()
.get_owned::<V>()
.expect("Failed to get the value")
}
/// Indicate that the serialization has ended with an error.
///
/// This function consumes @error.
/// ## `error`
/// a `GError`
#[doc(alias = "gdk_content_serializer_return_error")]
pub fn return_error(&self, error: glib::Error) {
unsafe {
ffi::gdk_content_serializer_return_error(
self.to_glib_none().0,
mut_override(error.into_glib_ptr()),
);
}
}
}