use crate::Disc;
use crate::translate::StringVariantHashMap;
use crate::{Writer, ffi};
use glib::object::*;
use glib::translate::*;
use std::collections::HashMap;
use std::ptr;
pub trait WriterExtManual: IsA<Writer> + 'static {
#[doc(alias = "mirage_writer_open_image")]
fn open_image(
&self,
disc: &impl IsA<Disc>,
parameters: &HashMap<String, glib::Variant>,
) -> Result<(), glib::Error> {
unsafe {
let mut error = ptr::null_mut();
let is_ok = ffi::mirage_writer_open_image(
self.as_ref().to_glib_none().0,
disc.as_ref().to_glib_none().0,
StringVariantHashMap(parameters).to_glib_none().0,
&mut error,
);
debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
if error.is_null() {
Ok(())
} else {
Err(from_glib_full(error))
}
}
}
#[doc(alias = "mirage_writer_convert_image")]
fn convert_image(
&self,
filename: &str,
original_disc: &impl IsA<Disc>,
parameters: &HashMap<String, glib::Variant>,
cancellable: Option<&impl IsA<gio::Cancellable>>,
) -> Result<(), glib::Error> {
unsafe {
let mut error = ptr::null_mut();
let is_ok = ffi::mirage_writer_convert_image(
self.as_ref().to_glib_none().0,
filename.to_glib_none().0,
original_disc.as_ref().to_glib_none().0,
StringVariantHashMap(parameters).to_glib_none().0,
cancellable.map(AsRef::as_ref).to_glib_none().0,
&mut error,
);
debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
if error.is_null() {
Ok(())
} else {
Err(from_glib_full(error))
}
}
}
}
impl<O: IsA<Writer>> WriterExtManual for O {}