From 0f7ca7ec87101d2eca8d50e7c5fe7c28ce9f95c8 Mon Sep 17 00:00:00 2001 From: Matthias Endler Date: Wed, 24 Feb 2021 00:45:08 +0100 Subject: [PATCH] Move macro into separate file --- src/quirks/headers_macro.rs | 17 +++++++++++++++++ src/quirks/mod.rs | 22 +++------------------- 2 files changed, 20 insertions(+), 19 deletions(-) create mode 100644 src/quirks/headers_macro.rs diff --git a/src/quirks/headers_macro.rs b/src/quirks/headers_macro.rs new file mode 100644 index 0000000..344012a --- /dev/null +++ b/src/quirks/headers_macro.rs @@ -0,0 +1,17 @@ +// Adapted from https://github.com/bluss/maplit for HeaderMaps +macro_rules! headers { + (@single $($x:tt)*) => (()); + (@count $($rest:expr),*) => (<[()]>::len(&[$(headers!(@single $rest)),*])); + + ($($key:expr => $value:expr,)+) => { headers!($($key => $value),+) }; + ($($key:expr => $value:expr),*) => { + { + let _cap = headers!(@count $($key),*); + let mut _map = headers::HeaderMap::with_capacity(_cap); + $( + let _ = _map.insert($key, $value); + )* + _map + } + }; +} diff --git a/src/quirks/mod.rs b/src/quirks/mod.rs index 5eac7a0..a352973 100644 --- a/src/quirks/mod.rs +++ b/src/quirks/mod.rs @@ -1,3 +1,6 @@ +#[macro_use] +mod headers_macro; + use headers::HeaderMap; use http::{header::USER_AGENT, Method}; use regex::Regex; @@ -7,24 +10,6 @@ use reqwest::Url; const GOOGLEBOT: &'static str = "Mozilla/5.0 (compatible; Googlebot/2.1; +http://google.com/bot.html)"; -// Adapted from https://github.com/bluss/maplit for HeaderMaps -macro_rules! headers { - (@single $($x:tt)*) => (()); - (@count $($rest:expr),*) => (<[()]>::len(&[$(headers!(@single $rest)),*])); - - ($($key:expr => $value:expr,)+) => { headers!($($key => $value),+) }; - ($($key:expr => $value:expr),*) => { - { - let _cap = headers!(@count $($key),*); - let mut _map = headers::HeaderMap::with_capacity(_cap); - $( - let _ = _map.insert($key, $value); - )* - _map - } - }; -} - #[derive(Debug, Clone)] pub struct Quirk { pub pattern: Regex, @@ -63,7 +48,6 @@ impl Quirks { }), }, ]; - Self { quirks } }