soup/auto/
message_headers.rs1use crate::{ffi, Encoding, Expectation, MessageHeadersType};
7use glib::translate::*;
8
9glib::wrapper! {
10 #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
11 pub struct MessageHeaders(Shared<ffi::SoupMessageHeaders>);
12
13 match fn {
14 ref => |ptr| ffi::soup_message_headers_ref(ptr),
15 unref => |ptr| ffi::soup_message_headers_unref(ptr),
16 type_ => || ffi::soup_message_headers_get_type(),
17 }
18}
19
20impl MessageHeaders {
21 #[doc(alias = "soup_message_headers_new")]
22 pub fn new(type_: MessageHeadersType) -> MessageHeaders {
23 assert_initialized_main_thread!();
24 unsafe { from_glib_full(ffi::soup_message_headers_new(type_.into_glib())) }
25 }
26
27 #[doc(alias = "soup_message_headers_append")]
28 pub fn append(&self, name: &str, value: &str) {
29 unsafe {
30 ffi::soup_message_headers_append(
31 self.to_glib_none().0,
32 name.to_glib_none().0,
33 value.to_glib_none().0,
34 );
35 }
36 }
37
38 #[doc(alias = "soup_message_headers_clean_connection_headers")]
39 pub fn clean_connection_headers(&self) {
40 unsafe {
41 ffi::soup_message_headers_clean_connection_headers(self.to_glib_none().0);
42 }
43 }
44
45 #[doc(alias = "soup_message_headers_clear")]
46 pub fn clear(&self) {
47 unsafe {
48 ffi::soup_message_headers_clear(self.to_glib_none().0);
49 }
50 }
51
52 #[doc(alias = "soup_message_headers_foreach")]
53 pub fn foreach<P: FnMut(&str, &str)>(&self, func: P) {
54 let func_data: P = func;
55 unsafe extern "C" fn func_func<P: FnMut(&str, &str)>(
56 name: *const libc::c_char,
57 value: *const libc::c_char,
58 user_data: glib::ffi::gpointer,
59 ) {
60 let name: Borrowed<glib::GString> = from_glib_borrow(name);
61 let value: Borrowed<glib::GString> = from_glib_borrow(value);
62 let callback = user_data as *mut P;
63 (*callback)(name.as_str(), value.as_str())
64 }
65 let func = Some(func_func::<P> as _);
66 let super_callback0: &P = &func_data;
67 unsafe {
68 ffi::soup_message_headers_foreach(
69 self.to_glib_none().0,
70 func,
71 super_callback0 as *const _ as *mut _,
72 );
73 }
74 }
75
76 #[doc(alias = "soup_message_headers_get_content_length")]
82 #[doc(alias = "get_content_length")]
83 pub fn content_length(&self) -> i64 {
84 unsafe { ffi::soup_message_headers_get_content_length(self.to_glib_none().0) }
85 }
86
87 #[doc(alias = "soup_message_headers_get_content_range")]
88 #[doc(alias = "get_content_range")]
89 pub fn content_range(&self) -> Option<(i64, i64, i64)> {
90 unsafe {
91 let mut start = std::mem::MaybeUninit::uninit();
92 let mut end = std::mem::MaybeUninit::uninit();
93 let mut total_length = std::mem::MaybeUninit::uninit();
94 let ret = from_glib(ffi::soup_message_headers_get_content_range(
95 self.to_glib_none().0,
96 start.as_mut_ptr(),
97 end.as_mut_ptr(),
98 total_length.as_mut_ptr(),
99 ));
100 if ret {
101 Some((
102 start.assume_init(),
103 end.assume_init(),
104 total_length.assume_init(),
105 ))
106 } else {
107 None
108 }
109 }
110 }
111
112 #[doc(alias = "soup_message_headers_get_encoding")]
113 #[doc(alias = "get_encoding")]
114 pub fn encoding(&self) -> Encoding {
115 unsafe {
116 from_glib(ffi::soup_message_headers_get_encoding(
117 self.to_glib_none().0,
118 ))
119 }
120 }
121
122 #[doc(alias = "soup_message_headers_get_expectations")]
123 #[doc(alias = "get_expectations")]
124 pub fn expectations(&self) -> Expectation {
125 unsafe {
126 from_glib(ffi::soup_message_headers_get_expectations(
127 self.to_glib_none().0,
128 ))
129 }
130 }
131
132 #[doc(alias = "soup_message_headers_get_headers_type")]
133 #[doc(alias = "get_headers_type")]
134 pub fn headers_type(&self) -> MessageHeadersType {
135 unsafe {
136 from_glib(ffi::soup_message_headers_get_headers_type(
137 self.to_glib_none().0,
138 ))
139 }
140 }
141
142 #[doc(alias = "soup_message_headers_get_list")]
143 #[doc(alias = "get_list")]
144 pub fn list(&self, name: &str) -> Option<glib::GString> {
145 unsafe {
146 from_glib_none(ffi::soup_message_headers_get_list(
147 self.to_glib_none().0,
148 name.to_glib_none().0,
149 ))
150 }
151 }
152
153 #[doc(alias = "soup_message_headers_get_one")]
154 #[doc(alias = "get_one")]
155 pub fn one(&self, name: &str) -> Option<glib::GString> {
156 unsafe {
157 from_glib_none(ffi::soup_message_headers_get_one(
158 self.to_glib_none().0,
159 name.to_glib_none().0,
160 ))
161 }
162 }
163
164 #[doc(alias = "soup_message_headers_header_contains")]
171 pub fn header_contains(&self, name: &str, token: &str) -> bool {
172 unsafe {
173 from_glib(ffi::soup_message_headers_header_contains(
174 self.to_glib_none().0,
175 name.to_glib_none().0,
176 token.to_glib_none().0,
177 ))
178 }
179 }
180
181 #[doc(alias = "soup_message_headers_header_equals")]
182 pub fn header_equals(&self, name: &str, value: &str) -> bool {
183 unsafe {
184 from_glib(ffi::soup_message_headers_header_equals(
185 self.to_glib_none().0,
186 name.to_glib_none().0,
187 value.to_glib_none().0,
188 ))
189 }
190 }
191
192 #[doc(alias = "soup_message_headers_remove")]
193 pub fn remove(&self, name: &str) {
194 unsafe {
195 ffi::soup_message_headers_remove(self.to_glib_none().0, name.to_glib_none().0);
196 }
197 }
198
199 #[doc(alias = "soup_message_headers_replace")]
200 pub fn replace(&self, name: &str, value: &str) {
201 unsafe {
202 ffi::soup_message_headers_replace(
203 self.to_glib_none().0,
204 name.to_glib_none().0,
205 value.to_glib_none().0,
206 );
207 }
208 }
209
210 #[doc(alias = "soup_message_headers_set_content_length")]
211 pub fn set_content_length(&self, content_length: i64) {
212 unsafe {
213 ffi::soup_message_headers_set_content_length(self.to_glib_none().0, content_length);
214 }
215 }
216
217 #[doc(alias = "soup_message_headers_set_content_range")]
218 pub fn set_content_range(&self, start: i64, end: i64, total_length: i64) {
219 unsafe {
220 ffi::soup_message_headers_set_content_range(
221 self.to_glib_none().0,
222 start,
223 end,
224 total_length,
225 );
226 }
227 }
228
229 #[doc(alias = "soup_message_headers_set_encoding")]
230 pub fn set_encoding(&self, encoding: Encoding) {
231 unsafe {
232 ffi::soup_message_headers_set_encoding(self.to_glib_none().0, encoding.into_glib());
233 }
234 }
235
236 #[doc(alias = "soup_message_headers_set_expectations")]
237 pub fn set_expectations(&self, expectations: Expectation) {
238 unsafe {
239 ffi::soup_message_headers_set_expectations(
240 self.to_glib_none().0,
241 expectations.into_glib(),
242 );
243 }
244 }
245
246 #[doc(alias = "soup_message_headers_set_range")]
247 pub fn set_range(&self, start: i64, end: i64) {
248 unsafe {
249 ffi::soup_message_headers_set_range(self.to_glib_none().0, start, end);
250 }
251 }
252
253 }