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