aboutsummaryrefslogtreecommitdiff
path: root/src/router.rs
diff options
context:
space:
mode:
authorFuwn <[email protected]>2023-04-02 02:06:25 +0000
committerFuwn <[email protected]>2023-04-02 02:06:25 +0000
commit15923b95c9466d9165e540238184eef18bf80a7f (patch)
tree39e715a56465578dc869608bb8facb3dfe29aaca /src/router.rs
parentfeat(response): add 'auto' functionality to binary_success raw (diff)
downloadwindmark-15923b95c9466d9165e540238184eef18bf80a7f.tar.xz
windmark-15923b95c9466d9165e540238184eef18bf80a7f.zip
feat(response): allow multiple languages
Diffstat (limited to 'src/router.rs')
-rw-r--r--src/router.rs23
1 files changed, 14 insertions, 9 deletions
diff --git a/src/router.rs b/src/router.rs
index 04e955e..b245722 100644
--- a/src/router.rs
+++ b/src/router.rs
@@ -66,7 +66,7 @@ pub struct Router {
pre_route_callback: Arc<Mutex<Callback>>,
post_route_callback: Arc<Mutex<CleanupCallback>>,
character_set: String,
- language: String,
+ languages: Vec<String>,
port: i32,
modules: Arc<Mutex<Vec<Box<dyn Module + Send>>>>,
fix_path: bool,
@@ -416,7 +416,10 @@ impl Router {
content
.character_set
.unwrap_or_else(|| self.character_set.clone()),
- content.language.unwrap_or_else(|| self.language.clone())
+ content
+ .languages
+ .unwrap_or_else(|| self.languages.clone())
+ .join(","),
),
21 => content.mime.unwrap_or_default(),
#[cfg(feature = "auto-deduce-mime")]
@@ -716,13 +719,15 @@ impl Router {
/// # Examples
///
/// ```rust
- /// windmark::Router::new().set_language("en");
+ /// windmark::Router::new().set_languages("en");
/// ```
- pub fn set_language(
- &mut self,
- language: impl Into<String> + AsRef<str>,
- ) -> &mut Self {
- self.language = language.into();
+ pub fn set_languages<S>(&mut self, language: impl AsRef<[S]>) -> &mut Self
+ where S: Into<String> + AsRef<str> {
+ self.languages = language
+ .as_ref()
+ .iter()
+ .map(|s| s.as_ref().to_string())
+ .collect::<Vec<String>>();
self
}
@@ -779,7 +784,7 @@ impl Default for Router {
pre_route_callback: Arc::new(Mutex::new(Box::new(|_| {}))),
post_route_callback: Arc::new(Mutex::new(Box::new(|_, _| {}))),
character_set: "utf-8".to_string(),
- language: "en".to_string(),
+ languages: vec!["en".to_string()],
port: 1965,
modules: Arc::new(Mutex::new(vec![])),
fix_path: false,