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 5 use gio_sys; 6 use glib::object::Cast; 7 use glib::object::IsA; 8 use glib::translate::*; 9 use glib::StaticType; 10 use glib::ToValue; 11 use std::fmt; 12 use Converter; 13 use FilterOutputStream; 14 use OutputStream; 15 use PollableOutputStream; 16 17 glib_wrapper! { 18 pub struct ConverterOutputStream(Object<gio_sys::GConverterOutputStream, gio_sys::GConverterOutputStreamClass, ConverterOutputStreamClass>) @extends FilterOutputStream, OutputStream, @implements PollableOutputStream; 19 20 match fn { 21 get_type => || gio_sys::g_converter_output_stream_get_type(), 22 } 23 } 24 25 impl ConverterOutputStream { new<P: IsA<OutputStream>, Q: IsA<Converter>>( base_stream: &P, converter: &Q, ) -> ConverterOutputStream26 pub fn new<P: IsA<OutputStream>, Q: IsA<Converter>>( 27 base_stream: &P, 28 converter: &Q, 29 ) -> ConverterOutputStream { 30 unsafe { 31 OutputStream::from_glib_full(gio_sys::g_converter_output_stream_new( 32 base_stream.as_ref().to_glib_none().0, 33 converter.as_ref().to_glib_none().0, 34 )) 35 .unsafe_cast() 36 } 37 } 38 } 39 40 pub struct ConverterOutputStreamBuilder { 41 converter: Option<Converter>, 42 base_stream: Option<OutputStream>, 43 close_base_stream: Option<bool>, 44 } 45 46 impl ConverterOutputStreamBuilder { new() -> Self47 pub fn new() -> Self { 48 Self { 49 converter: None, 50 base_stream: None, 51 close_base_stream: None, 52 } 53 } 54 build(self) -> ConverterOutputStream55 pub fn build(self) -> ConverterOutputStream { 56 let mut properties: Vec<(&str, &dyn ToValue)> = vec![]; 57 if let Some(ref converter) = self.converter { 58 properties.push(("converter", converter)); 59 } 60 if let Some(ref base_stream) = self.base_stream { 61 properties.push(("base-stream", base_stream)); 62 } 63 if let Some(ref close_base_stream) = self.close_base_stream { 64 properties.push(("close-base-stream", close_base_stream)); 65 } 66 glib::Object::new(ConverterOutputStream::static_type(), &properties) 67 .expect("object new") 68 .downcast() 69 .expect("downcast") 70 } 71 converter(mut self, converter: &Converter) -> Self72 pub fn converter(mut self, converter: &Converter) -> Self { 73 self.converter = Some(converter.clone()); 74 self 75 } 76 base_stream(mut self, base_stream: &OutputStream) -> Self77 pub fn base_stream(mut self, base_stream: &OutputStream) -> Self { 78 self.base_stream = Some(base_stream.clone()); 79 self 80 } 81 close_base_stream(mut self, close_base_stream: bool) -> Self82 pub fn close_base_stream(mut self, close_base_stream: bool) -> Self { 83 self.close_base_stream = Some(close_base_stream); 84 self 85 } 86 } 87 88 pub const NONE_CONVERTER_OUTPUT_STREAM: Option<&ConverterOutputStream> = None; 89 90 pub trait ConverterOutputStreamExt: 'static { get_converter(&self) -> Option<Converter>91 fn get_converter(&self) -> Option<Converter>; 92 } 93 94 impl<O: IsA<ConverterOutputStream>> ConverterOutputStreamExt for O { get_converter(&self) -> Option<Converter>95 fn get_converter(&self) -> Option<Converter> { 96 unsafe { 97 from_glib_none(gio_sys::g_converter_output_stream_get_converter( 98 self.as_ref().to_glib_none().0, 99 )) 100 } 101 } 102 } 103 104 impl fmt::Display for ConverterOutputStream { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result105 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 106 write!(f, "ConverterOutputStream") 107 } 108 } 109