use crate::CATEGORIES;
use std::collections::HashMap;
use std::collections::HashSet;
lazy_static! {
/// If one is present, adjust score of a category
///
/// `keyword: [(slug, multiply, add)]`
pub(crate) static ref KEYWORD_CATEGORIES: Vec<(Cond, &'static [(&'static str, f64, f64)])> = [
(Cond::Any(&["no-std", "no_std"]), &[("no-std", 1.4, 0.15), ("command-line-utilities", 0.5, 0.), ("cryptography::cryptocurrencies", 0.9, 0.)][..]),
// derived from features
(Cond::Any(&["feature:no_std", "feature:no-std", "feature:std", "heapless"]), &[("no-std", 1.2, 0.)]),
(Cond::Any(&["print", "font", "parsing", "hashmap", "money", "flags", "data-structure", "cache", "macros", "wasm", "emulator", "hash"]), &[("no-std", 0.6, 0.)]),
(Cond::Any(&["winsdk", "winrt", "directx", "dll", "win32", "winutil", "msdos", "winapi"]),
&[("os::windows-apis", 1.5, 0.1), ("parser-implementations", 0.9, 0.), ("text-processing", 0.9, 0.), ("text-editors", 0.8, 0.), ("no-std", 0.9, 0.)]),
(Cond::All(&["windows", "ffi"]), &[("os::windows-apis", 1.1, 0.1), ("memory-management", 0.9, 0.)]),
(Cond::Any(&["windows"]), &[("os::windows-apis", 1.1, 0.1), ("text-processing", 0.8, 0.)]),
(Cond::All(&["ffi", "winsdk"]), &[("os::windows-apis", 1.9, 0.5), ("no-std", 0.5, 0.), ("science::math", 0.9, 0.)]),
(Cond::All(&["ffi", "windows"]), &[("os::windows-apis", 1.2, 0.2)]),
(Cond::Any(&["winauth", "ntlm"]), &[("os::windows-apis", 1.25, 0.2), ("authentication", 1.3, 0.2)]),
(Cond::Any(&["windows", "winsdk", "win32", "activex"]), &[("os::macos-apis", 0., 0.), ("os::unix-apis", 0., 0.), ("science::math", 0.8, 0.), ("memory-management", 0.9, 0.)]),
(Cond::Any(&["macos", "osx", "ios", "cocoa", "erlang"]), &[("os::windows-apis", 0., 0.), ("no-std", 0.01, 0.)]),
(Cond::Any(&["macos", "osx", "cocoa", "mach-o", "uikit", "appkit"]), &[("os::macos-apis", 1.4, 0.2), ("science::math", 0.75, 0.)]),
(Cond::All(&["os", "x"]), &[("os::macos-apis", 1.2, 0.)]),
(Cond::All(&["mac", "bindings"]), &[("os::macos-apis",