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
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
// This file was generated by gir (https://github.com/gtk-rs/gir @ fe7a6ff+)
// from gir-files (https://github.com/gtk-rs/gir-files @ b215ee8)
// DO NOT EDIT

use Filter;
use FilterGZipMode;
use ffi;
use glib::object::Downcast;
use glib::object::IsA;
use glib::translate::*;
use glib_ffi;
use gobject_ffi;
use std::mem;
use std::ptr;

glib_wrapper! {
    /// A filter for compresing or decompressing a gzip stream.
    ///
    /// # Implements
    ///
    /// [`FilterGZipExt`](trait.FilterGZipExt.html), [`FilterExt`](trait.FilterExt.html)
    pub struct FilterGZip(Object<ffi::GMimeFilterGZip, ffi::GMimeFilterGZipClass>): Filter;

    match fn {
        get_type => || ffi::g_mime_filter_gzip_get_type(),
    }
}

impl FilterGZip {
    /// Creates a new gzip (or gunzip) filter.
    /// ## `mode`
    /// zip or unzip
    /// ## `level`
    /// compression level
    ///
    /// # Returns
    ///
    /// a new gzip (or gunzip) filter.
    pub fn new(mode: FilterGZipMode, level: i32) -> FilterGZip {
        unsafe {
            Filter::from_glib_full(ffi::g_mime_filter_gzip_new(mode.to_glib(), level)).downcast_unchecked()
        }
    }
}

/// Trait containing all `FilterGZip` methods.
///
/// # Implementors
///
/// [`FilterGZip`](struct.FilterGZip.html)
pub trait FilterGZipExt {
    /// Gets the comment that was either previously set or retrieved when decoding a gzip stream.
    ///
    /// Feature: `v3_2`
    ///
    ///
    /// # Returns
    ///
    /// a string containing the comment.
    #[cfg(any(feature = "v3_2", feature = "dox"))]
    fn get_comment(&self) -> Option<String>;

    /// Gets the filename that was either previously set or retrieved when decoding a gzip stream.
    ///
    /// Feature: `v3_2`
    ///
    ///
    /// # Returns
    ///
    /// a string containing th ename of the file.
    #[cfg(any(feature = "v3_2", feature = "dox"))]
    fn get_filename(&self) -> Option<String>;

    /// Sets the comment that should be used when generating the gzip header.
    ///
    /// Feature: `v3_2`
    ///
    /// ## `comment`
    /// The comment
    #[cfg(any(feature = "v3_2", feature = "dox"))]
    fn set_comment(&self, comment: &str);

    /// Sets the filename that should be used when generating the gzip header.
    ///
    /// Feature: `v3_2`
    ///
    /// ## `filename`
    /// The name of the file
    #[cfg(any(feature = "v3_2", feature = "dox"))]
    fn set_filename(&self, filename: &str);
}

impl<O: IsA<FilterGZip>> FilterGZipExt for O {
    #[cfg(any(feature = "v3_2", feature = "dox"))]
    fn get_comment(&self) -> Option<String> {
        unsafe {
            from_glib_none(ffi::g_mime_filter_gzip_get_comment(self.to_glib_none().0))
        }
    }

    #[cfg(any(feature = "v3_2", feature = "dox"))]
    fn get_filename(&self) -> Option<String> {
        unsafe {
            from_glib_none(ffi::g_mime_filter_gzip_get_filename(self.to_glib_none().0))
        }
    }

    #[cfg(any(feature = "v3_2", feature = "dox"))]
    fn set_comment(&self, comment: &str) {
        unsafe {
            ffi::g_mime_filter_gzip_set_comment(self.to_glib_none().0, comment.to_glib_none().0);
        }
    }

    #[cfg(any(feature = "v3_2", feature = "dox"))]
    fn set_filename(&self, filename: &str) {
        unsafe {
            ffi::g_mime_filter_gzip_set_filename(self.to_glib_none().0, filename.to_glib_none().0);
        }
    }
}