1use crate::{
2 AOL_VERSION, BROWSER, BROWSER_BITS, BROWSER_MAJOR_VERSION, BROWSER_MAKER,
3 BROWSER_MINOR_VERSION, BROWSER_MODUS, BROWSER_TYPE, BROWSER_VERSION, BrowsCapField, COMMENT,
4 CSS_VERSION, DEVICE_BRAND_NAME, DEVICE_CODE_NAME, DEVICE_MAKER, DEVICE_NAME,
5 DEVICE_POINTING_METHOD, DEVICE_TYPE, IS_ACTIVEX_CONTROLS, IS_ALPHA, IS_ANONYMIZED,
6 IS_BACKGROUND_SOUNDS, IS_BETA, IS_COOKIES, IS_CRAWLER, IS_FAKE, IS_FRAMES, IS_IFRAMES,
7 IS_JAVA_APPLETS, IS_JAVASCRIPT, IS_LITE_MODE, IS_MASTER_PARENT, IS_MOBILE_DEVICE, IS_MODIFIED,
8 IS_SYNDICATION_READER, IS_TABLES, IS_TABLET, IS_VBSCRIPT, IS_WIN16, IS_WIN32, IS_WIN64, PARENT,
9 PLATFORM, PLATFORM_BITS, PLATFORM_DESCRIPTION, PLATFORM_MAKER, PLATFORM_VERSION,
10 RENDERING_ENGINE_DESCRIPTION, RENDERING_ENGINE_MAKER, RENDERING_ENGINE_NAME,
11 RENDERING_ENGINE_VERSION,
12};
13
14impl BrowsCapField {
15 pub(crate) const fn new(name: &'static str, is_default: bool, ordinal: usize) -> Self {
16 Self {
17 name,
18 is_default,
19 ordinal,
20 }
21 }
22
23 pub fn ordinal(&self) -> usize {
24 self.ordinal
25 }
26
27 pub fn index(&self) -> usize {
28 self.ordinal + 1
29 }
30
31 pub fn is_default(&self) -> bool {
32 self.is_default
33 }
34
35 pub fn values() -> &'static [BrowsCapField] {
36 &VALUES
37 }
38
39 pub fn name(&self) -> &'static str {
40 self.name
41 }
42}
43
44pub const VALUES: [BrowsCapField; 50] = [
46 IS_MASTER_PARENT,
47 IS_LITE_MODE,
48 PARENT,
49 COMMENT,
50 BROWSER,
51 BROWSER_TYPE,
52 BROWSER_BITS,
53 BROWSER_MAKER,
54 BROWSER_MODUS,
55 BROWSER_VERSION,
56 BROWSER_MAJOR_VERSION,
57 BROWSER_MINOR_VERSION,
58 PLATFORM,
59 PLATFORM_VERSION,
60 PLATFORM_DESCRIPTION,
61 PLATFORM_BITS,
62 PLATFORM_MAKER,
63 IS_ALPHA,
64 IS_BETA,
65 IS_WIN16,
66 IS_WIN32,
67 IS_WIN64,
68 IS_IFRAMES,
69 IS_FRAMES,
70 IS_TABLES,
71 IS_COOKIES,
72 IS_BACKGROUND_SOUNDS,
73 IS_JAVASCRIPT,
74 IS_VBSCRIPT,
75 IS_JAVA_APPLETS,
76 IS_ACTIVEX_CONTROLS,
77 IS_MOBILE_DEVICE,
78 IS_TABLET,
79 IS_SYNDICATION_READER,
80 IS_CRAWLER,
81 IS_FAKE,
82 IS_ANONYMIZED,
83 IS_MODIFIED,
84 CSS_VERSION,
85 AOL_VERSION,
86 DEVICE_NAME,
87 DEVICE_MAKER,
88 DEVICE_TYPE,
89 DEVICE_POINTING_METHOD,
90 DEVICE_CODE_NAME,
91 DEVICE_BRAND_NAME,
92 RENDERING_ENGINE_NAME,
93 RENDERING_ENGINE_VERSION,
94 RENDERING_ENGINE_DESCRIPTION,
95 RENDERING_ENGINE_MAKER,
96];