add query support

This commit is contained in:
yggverse 2025-01-14 00:42:40 +02:00
parent a9283770db
commit df191c8e25

View file

@ -1,4 +1,4 @@
use glib::{Bytes, Uri}; use glib::{Bytes, Uri, UriHideFlags};
/// [Titan](gemini://transjovian.org/titan/page/The%20Titan%20Specification) protocol enum object for `Request` /// [Titan](gemini://transjovian.org/titan/page/The%20Titan%20Specification) protocol enum object for `Request`
pub struct Titan { pub struct Titan {
@ -17,13 +17,19 @@ impl Titan {
let size = self.data.len(); let size = self.data.len();
// Build header // Build header
let mut header = format!("{};size={size}", self.uri); let mut header = format!(
"{};size={size}",
self.uri.to_string_partial(UriHideFlags::QUERY)
);
if let Some(ref mime) = self.mime { if let Some(ref mime) = self.mime {
header.push_str(&format!(";mime={mime}")); header.push_str(&format!(";mime={mime}"));
} }
if let Some(ref token) = self.token { if let Some(ref token) = self.token {
header.push_str(&format!(";token={token}")); header.push_str(&format!(";token={token}"));
} }
if let Some(query) = self.uri.query() {
header.push_str(&format!("?{query}"));
}
header.push_str("\r\n"); header.push_str("\r\n");
// Build request // Build request