aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFuwn <[email protected]>2022-03-27 06:30:17 +0000
committerFuwn <[email protected]>2022-03-27 06:30:17 +0000
commit607da6e68f31d9025c035e11ecbe3e56c8077dba (patch)
tree731d4d1c50d0a9a0ee0081659475d00f2f5c659a /src
parentfeat(router): logging options (diff)
downloadwindmark-607da6e68f31d9025c035e11ecbe3e56c8077dba.tar.xz
windmark-607da6e68f31d9025c035e11ecbe3e56c8077dba.zip
feat(router): set charset and language
Diffstat (limited to 'src')
-rw-r--r--src/lib.rs40
1 files changed, 39 insertions, 1 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 514a4a3..1563c62 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -66,6 +66,8 @@ pub struct Router {
default_logger: bool,
pre_route_callback: Callback,
post_route_callback: Callback,
+ charset: String,
+ language: String,
}
impl Router {
/// Create a new `Router`
@@ -320,7 +322,11 @@ impl Router {
response_status
},
match response_status {
- 20 => " text/gemini; charset=utf-8".to_string(),
+ 20 =>
+ format!(
+ " text/gemini; charset={}; lang={}",
+ self.charset, self.language
+ ),
21 => tree_magic::from_u8(&*content.as_bytes()),
_ => (&*content).to_string(),
},
@@ -503,6 +509,36 @@ impl Router {
self
}
+
+ /// Specify a custom character set.
+ ///
+ /// Defaults to `"utf-8"`.
+ ///
+ /// # Examples
+ ///
+ /// ```rust
+ /// windmark::Router::new().set_charset("utf-8");
+ /// ```
+ pub fn set_charset(&mut self, charset: &str) -> &mut Self {
+ self.charset = charset.to_string();
+
+ self
+ }
+
+ /// Specify a custom language.
+ ///
+ /// Defaults to `"en"`.
+ ///
+ /// # Examples
+ ///
+ /// ```rust
+ /// windmark::Router::new().set_language("en");
+ /// ```
+ pub fn set_language(&mut self, language: &str) -> &mut Self {
+ self.language = language.to_string();
+
+ self
+ }
}
impl Default for Router {
fn default() -> Self {
@@ -526,6 +562,8 @@ impl Default for Router {
default_logger: false,
pre_route_callback: |_, _, _| {},
post_route_callback: |_, _, _| {},
+ charset: "utf-8".to_string(),
+ language: "en".to_string(),
}
}
}