summaryrefslogtreecommitdiffstats
path: root/third_party/rust/headers/src/disabled/accept_language.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
commit36d22d82aa202bb199967e9512281e9a53db42c9 (patch)
tree105e8c98ddea1c1e4784a60a5a6410fa416be2de /third_party/rust/headers/src/disabled/accept_language.rs
parentInitial commit. (diff)
downloadfirefox-esr-upstream.tar.xz
firefox-esr-upstream.zip
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/rust/headers/src/disabled/accept_language.rs')
-rw-r--r--third_party/rust/headers/src/disabled/accept_language.rs72
1 files changed, 72 insertions, 0 deletions
diff --git a/third_party/rust/headers/src/disabled/accept_language.rs b/third_party/rust/headers/src/disabled/accept_language.rs
new file mode 100644
index 0000000000..dccfdb0bc3
--- /dev/null
+++ b/third_party/rust/headers/src/disabled/accept_language.rs
@@ -0,0 +1,72 @@
+use language_tags::LanguageTag;
+use QualityItem;
+
+header! {
+ /// `Accept-Language` header, defined in
+ /// [RFC7231](http://tools.ietf.org/html/rfc7231#section-5.3.5)
+ ///
+ /// The `Accept-Language` header field can be used by user agents to
+ /// indicate the set of natural languages that are preferred in the
+ /// response.
+ ///
+ /// # ABNF
+ ///
+ /// ```text
+ /// Accept-Language = 1#( language-range [ weight ] )
+ /// language-range = <language-range, see [RFC4647], Section 2.1>
+ /// ```
+ ///
+ /// # Example values
+ /// * `da, en-gb;q=0.8, en;q=0.7`
+ /// * `en-us;q=1.0, en;q=0.5, fr`
+ ///
+ /// # Examples
+ ///
+ /// ```
+ /// use headers::{Headers, AcceptLanguage, LanguageTag, qitem};
+ ///
+ /// let mut headers = Headers::new();
+ /// let mut langtag: LanguageTag = Default::default();
+ /// langtag.language = Some("en".to_owned());
+ /// langtag.region = Some("US".to_owned());
+ /// headers.set(
+ /// AcceptLanguage(vec![
+ /// qitem(langtag),
+ /// ])
+ /// );
+ /// ```
+ ///
+ /// ```
+ /// # extern crate headers;
+ /// # #[macro_use] extern crate language_tags;
+ /// # use headers::{Headers, AcceptLanguage, QualityItem, q, qitem};
+ /// #
+ /// # fn main() {
+ /// let mut headers = Headers::new();
+ /// headers.set(
+ /// AcceptLanguage(vec![
+ /// qitem(langtag!(da)),
+ /// QualityItem::new(langtag!(en;;;GB), q(800)),
+ /// QualityItem::new(langtag!(en), q(700)),
+ /// ])
+ /// );
+ /// # }
+ /// ```
+ (AcceptLanguage, ACCEPT_LANGUAGE) => (QualityItem<LanguageTag>)+
+
+ test_accept_language {
+ // From the RFC
+ test_header!(test1, vec![b"da, en-gb;q=0.8, en;q=0.7"]);
+ // Own test
+ test_header!(
+ test2, vec![b"en-US, en; q=0.5, fr"],
+ Some(AcceptLanguage(vec![
+ qitem("en-US".parse().unwrap()),
+ QualityItem::new("en".parse().unwrap(), q(500)),
+ qitem("fr".parse().unwrap()),
+ ])));
+ }
+}
+
+bench_header!(bench, AcceptLanguage,
+ { vec![b"en-us;q=1.0, en;q=0.5, fr".to_vec()] });