soup/auto/
message_headers.rs1use crate::{Encoding, Expectation, MessageHeadersType, ffi};
7use glib::translate::*;
8
9glib::wrapper! {
10 #[derive(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 mut func_data: P = func;
55 unsafe extern "C" fn func_func<P: FnMut(&str, &str)>(
56 name: *const std::ffi::c_char,
57 value: *const std::ffi::c_char,
58 user_data: glib::ffi::gpointer,
59 ) {
60 unsafe {
61 let name: Borrowed<glib::GString> = from_glib_borrow(name);
62 let value: Borrowed<glib::GString> = from_glib_borrow(value);
63 let callback = user_data as *mut P;
64 (*callback)(name.as_str(), value.as_str())
65 }
66 }
67 let func = Some(func_func::<P> as _);
68 let super_callback0: &mut P = &mut func_data;
69 unsafe {
70 ffi::soup_message_headers_foreach(
71 self.to_glib_none().0,
72 func,
73 super_callback0 as *mut _ as *mut _,
74 );
75 }
76 }
77
78 #[doc(alias = "soup_message_headers_get_content_length")]
84 #[doc(alias = "get_content_length")]
85 pub fn content_length(&self) -> i64 {
86 unsafe { ffi::soup_message_headers_get_content_length(self.to_glib_none().0) }
87 }
88
89 #[doc(alias = "soup_message_headers_get_content_range")]
90 #[doc(alias = "get_content_range")]
91 pub fn content_range(&self) -> Option<(i64, i64, i64)> {
92 unsafe {
93 let mut start = std::mem::MaybeUninit::uninit();
94 let mut end = std::mem::MaybeUninit::uninit();
95 let mut total_length = std::mem::MaybeUninit::uninit();
96 let ret = from_glib(ffi::soup_message_headers_get_content_range(
97 self.to_glib_none().0,
98 start.as_mut_ptr(),
99 end.as_mut_ptr(),
100 total_length.as_mut_ptr(),
101 ));
102 if ret {
103 Some((
104 start.assume_init(),
105 end.assume_init(),
106 total_length.assume_init(),
107 ))
108 } else {
109 None
110 }
111 }
112 }
113
114 #[doc(alias = "soup_message_headers_get_encoding")]
115 #[doc(alias = "get_encoding")]
116 pub fn encoding(&self) -> Encoding {
117 unsafe {
118 from_glib(ffi::soup_message_headers_get_encoding(
119 self.to_glib_none().0,
120 ))
121 }
122 }
123
124 #[doc(alias = "soup_message_headers_get_expectations")]
125 #[doc(alias = "get_expectations")]
126 pub fn expectations(&self) -> Expectation {
127 unsafe {
128 from_glib(ffi::soup_message_headers_get_expectations(
129 self.to_glib_none().0,
130 ))
131 }
132 }
133
134 #[doc(alias = "soup_message_headers_get_headers_type")]
135 #[doc(alias = "get_headers_type")]
136 pub fn headers_type(&self) -> MessageHeadersType {
137 unsafe {
138 from_glib(ffi::soup_message_headers_get_headers_type(
139 self.to_glib_none().0,
140 ))
141 }
142 }
143
144 #[doc(alias = "soup_message_headers_get_list")]
145 #[doc(alias = "get_list")]
146 pub fn list(&self, name: &str) -> Option<glib::GString> {
147 unsafe {
148 from_glib_none(ffi::soup_message_headers_get_list(
149 self.to_glib_none().0,
150 name.to_glib_none().0,
151 ))
152 }
153 }
154
155 #[doc(alias = "soup_message_headers_get_one")]
156 #[doc(alias = "get_one")]
157 pub fn one(&self, name: &str) -> Option<glib::GString> {
158 unsafe {
159 from_glib_none(ffi::soup_message_headers_get_one(
160 self.to_glib_none().0,
161 name.to_glib_none().0,
162 ))
163 }
164 }
165
166 #[doc(alias = "soup_message_headers_header_contains")]
173 pub fn header_contains(&self, name: &str, token: &str) -> bool {
174 unsafe {
175 from_glib(ffi::soup_message_headers_header_contains(
176 self.to_glib_none().0,
177 name.to_glib_none().0,
178 token.to_glib_none().0,
179 ))
180 }
181 }
182
183 #[doc(alias = "soup_message_headers_header_equals")]
184 pub fn header_equals(&self, name: &str, value: &str) -> bool {
185 unsafe {
186 from_glib(ffi::soup_message_headers_header_equals(
187 self.to_glib_none().0,
188 name.to_glib_none().0,
189 value.to_glib_none().0,
190 ))
191 }
192 }
193
194 #[doc(alias = "soup_message_headers_remove")]
195 pub fn remove(&self, name: &str) {
196 unsafe {
197 ffi::soup_message_headers_remove(self.to_glib_none().0, name.to_glib_none().0);
198 }
199 }
200
201 #[doc(alias = "soup_message_headers_replace")]
202 pub fn replace(&self, name: &str, value: &str) {
203 unsafe {
204 ffi::soup_message_headers_replace(
205 self.to_glib_none().0,
206 name.to_glib_none().0,
207 value.to_glib_none().0,
208 );
209 }
210 }
211
212 #[doc(alias = "soup_message_headers_set_content_length")]
213 pub fn set_content_length(&self, content_length: i64) {
214 unsafe {
215 ffi::soup_message_headers_set_content_length(self.to_glib_none().0, content_length);
216 }
217 }
218
219 #[doc(alias = "soup_message_headers_set_content_range")]
220 pub fn set_content_range(&self, start: i64, end: i64, total_length: i64) {
221 unsafe {
222 ffi::soup_message_headers_set_content_range(
223 self.to_glib_none().0,
224 start,
225 end,
226 total_length,
227 );
228 }
229 }
230
231 #[doc(alias = "soup_message_headers_set_encoding")]
232 pub fn set_encoding(&self, encoding: Encoding) {
233 unsafe {
234 ffi::soup_message_headers_set_encoding(self.to_glib_none().0, encoding.into_glib());
235 }
236 }
237
238 #[doc(alias = "soup_message_headers_set_expectations")]
239 pub fn set_expectations(&self, expectations: Expectation) {
240 unsafe {
241 ffi::soup_message_headers_set_expectations(
242 self.to_glib_none().0,
243 expectations.into_glib(),
244 );
245 }
246 }
247
248 #[doc(alias = "soup_message_headers_set_range")]
249 pub fn set_range(&self, start: i64, end: i64) {
250 unsafe {
251 ffi::soup_message_headers_set_range(self.to_glib_none().0, start, end);
252 }
253 }
254
255 }