ipqs_db_reader/
binary_option.rs1pub const CONNECTION_MASK: u8 = 0b0011_1000; pub const ABUSE_VELOCITY_MASK: u8 = 0b1100_0000; pub const TREE_DATA: u8 = 0b0000_0100;
9pub const STRING_DATA: u8 = 0b0000_1000;
10pub const SMALL_INT_DATA: u8 = 0b0001_0000;
11pub const INT_DATA: u8 = 0b0010_0000;
12pub const FLOAT_DATA: u8 = 0b0100_0000;
13pub const IS_PROXY: u8 = 0x01;
17pub const IS_VPN: u8 = 0x02;
18pub const IS_TOR: u8 = 0x04;
19pub const IS_CRAWLER: u8 = 0x08;
20pub const IS_BOT: u8 = 0x10;
21pub const RECENT_ABUSE: u8 = 0x20;
22pub const IS_BLACKLISTED: u8 = 0x40;
23pub const IS_PRIVATE: u8 = 0x80;
24
25pub const IS_MOBILE: u8 = 0x01;
27pub const HAS_OPEN_PORTS: u8 = 0x02;
28pub const IS_HOSTING_PROVIDER: u8 = 0x04;
29pub const ACTIVE_VPN: u8 = 0x08;
30pub const ACTIVE_TOR: u8 = 0x10;
31pub const PUBLIC_ACCESS_POINT: u8 = 0x20;
32pub const CONNECTION_TYPE_ONE: u8 = 0x08;
40pub const CONNECTION_TYPE_TWO: u8 = 0x10;
41pub const CONNECTION_TYPE_THREE: u8 = 0x20;
42pub const ABUSE_VELOCITY_ONE: u8 = 0x40;
43pub const ABUSE_VELOCITY_TWO: u8 = 0x80;
44
45pub const THREE_UNION_TWO: u8 = CONNECTION_TYPE_THREE | CONNECTION_TYPE_TWO;
47pub const THREE_UNION_ONE: u8 = CONNECTION_TYPE_THREE | CONNECTION_TYPE_ONE;
48pub const ABUSE_BOTH: u8 = ABUSE_VELOCITY_ONE | ABUSE_VELOCITY_TWO;
49
50#[derive(Clone, Debug, Default)]
51#[cfg_attr(feature = "json", derive(serde::Serialize))]
52pub struct BinaryOption {
53 pub data: u8,
54}
55
56impl BinaryOption {
57 pub fn has(&self, flag: u8) -> bool {
58 self.data & flag != 0
59 }
60}