1pub const ASCII : u128 = 0xffffffffffffffffffffffffffffffff;
2pub const ASCII_ALPHABETIC : u128 = 0x07fffffe07fffffe0000000000000000;
3pub const ASCII_ALPHANUMERIC : u128 = 0x07fffffe07fffffe03ff000000000000;
4pub const ASCII_CONTROL : u128 = 0x800000000000000000000000ffffffff;
5pub const ASCII_DIGIT : u128 = 0x000000000000000003ff000000000000;
6pub const ASCII_GRAPHIC : u128 = 0x7ffffffffffffffffffffffe00000000;
7pub const ASCII_HEXDIGIT : u128 = 0x0000007e0000007e03ff000000000000;
8pub const ASCII_LOWERCASE : u128 = 0x07fffffe000000000000000000000000;
9pub const ASCII_PUNCTUATION : u128 = 0x78000001f8000001fc00fffe00000000;
10pub const ASCII_UPPERCASE : u128 = 0x0000000007fffffe0000000000000000;
11pub const ASCII_WHITESPACE : u128 = 0x00000000000000000000000100003600;
12
13pub fn charset(b: &[u8]) -> u128 {
14 let mut res = 0_u128;
15 for &bi in b {
16 res |= 1 << bi;
17 }
18 res
19}