soup/auto/
multipart.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from
3// from gir-files (https://github.com/gtk-rs/gir-files)
4// DO NOT EDIT
5
6use crate::{ffi, MessageHeaders};
7use glib::translate::*;
8
9glib::wrapper! {
10    #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
11    pub struct Multipart(Boxed<ffi::SoupMultipart>);
12
13    match fn {
14        copy => |ptr| glib::gobject_ffi::g_boxed_copy(ffi::soup_multipart_get_type(), ptr as *mut _) as *mut ffi::SoupMultipart,
15        free => |ptr| glib::gobject_ffi::g_boxed_free(ffi::soup_multipart_get_type(), ptr as *mut _),
16        type_ => || ffi::soup_multipart_get_type(),
17    }
18}
19
20impl Multipart {
21    #[doc(alias = "soup_multipart_new")]
22    pub fn new(mime_type: &str) -> Multipart {
23        assert_initialized_main_thread!();
24        unsafe { from_glib_full(ffi::soup_multipart_new(mime_type.to_glib_none().0)) }
25    }
26
27    #[doc(alias = "soup_multipart_new_from_message")]
28    #[doc(alias = "new_from_message")]
29    pub fn from_message(headers: &MessageHeaders, body: &glib::Bytes) -> Option<Multipart> {
30        assert_initialized_main_thread!();
31        unsafe {
32            from_glib_full(ffi::soup_multipart_new_from_message(
33                headers.to_glib_none().0,
34                body.to_glib_none().0,
35            ))
36        }
37    }
38
39    #[doc(alias = "soup_multipart_append_form_file")]
40    pub fn append_form_file(
41        &mut self,
42        control_name: &str,
43        filename: Option<&str>,
44        content_type: Option<&str>,
45        body: &glib::Bytes,
46    ) {
47        unsafe {
48            ffi::soup_multipart_append_form_file(
49                self.to_glib_none_mut().0,
50                control_name.to_glib_none().0,
51                filename.to_glib_none().0,
52                content_type.to_glib_none().0,
53                body.to_glib_none().0,
54            );
55        }
56    }
57
58    #[doc(alias = "soup_multipart_append_form_string")]
59    pub fn append_form_string(&mut self, control_name: &str, data: &str) {
60        unsafe {
61            ffi::soup_multipart_append_form_string(
62                self.to_glib_none_mut().0,
63                control_name.to_glib_none().0,
64                data.to_glib_none().0,
65            );
66        }
67    }
68
69    #[doc(alias = "soup_multipart_append_part")]
70    pub fn append_part(&mut self, headers: &MessageHeaders, body: &glib::Bytes) {
71        unsafe {
72            ffi::soup_multipart_append_part(
73                self.to_glib_none_mut().0,
74                headers.to_glib_none().0,
75                body.to_glib_none().0,
76            );
77        }
78    }
79
80    #[doc(alias = "soup_multipart_get_length")]
81    #[doc(alias = "get_length")]
82    pub fn length(&mut self) -> i32 {
83        unsafe { ffi::soup_multipart_get_length(self.to_glib_none_mut().0) }
84    }
85
86    #[doc(alias = "soup_multipart_get_part")]
87    #[doc(alias = "get_part")]
88    pub fn part(&mut self, part: i32) -> Option<(MessageHeaders, glib::Bytes)> {
89        unsafe {
90            let mut headers = std::ptr::null_mut();
91            let mut body = std::ptr::null_mut();
92            let ret = from_glib(ffi::soup_multipart_get_part(
93                self.to_glib_none_mut().0,
94                part,
95                &mut headers,
96                &mut body,
97            ));
98            if ret {
99                Some((from_glib_none(headers), from_glib_none(body)))
100            } else {
101                None
102            }
103        }
104    }
105
106    #[doc(alias = "soup_multipart_to_message")]
107    pub fn to_message(&mut self, dest_headers: &MessageHeaders) -> glib::Bytes {
108        unsafe {
109            let mut dest_body = std::ptr::null_mut();
110            ffi::soup_multipart_to_message(
111                self.to_glib_none_mut().0,
112                dest_headers.to_glib_none().0,
113                &mut dest_body,
114            );
115            from_glib_full(dest_body)
116        }
117    }
118}