diff options
| author | Fuwn <[email protected]> | 2022-03-27 06:30:17 +0000 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2022-03-27 06:30:17 +0000 |
| commit | 607da6e68f31d9025c035e11ecbe3e56c8077dba (patch) | |
| tree | 731d4d1c50d0a9a0ee0081659475d00f2f5c659a /src | |
| parent | feat(router): logging options (diff) | |
| download | windmark-607da6e68f31d9025c035e11ecbe3e56c8077dba.tar.xz windmark-607da6e68f31d9025c035e11ecbe3e56c8077dba.zip | |
feat(router): set charset and language
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib.rs | 40 |
1 files changed, 39 insertions, 1 deletions
@@ -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(), } } } |