browscap_rs/
brows_cap_field.rs

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
44// VALUES 数组
45pub 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];