1use std::fmt;
4
5#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
7pub struct POSTAG;
8
9impl POSTAG {
10 pub const BAD: u32 = 0x8000_0000;
12 pub const D_A: u32 = 0x4000_0000;
14 pub const D_B: u32 = 0x2000_0000;
16 pub const D_C: u32 = 0x1000_0000;
18 pub const D_D: u32 = 0x0800_0000;
20 pub const D_E: u32 = 0x0400_0000;
22 pub const D_F: u32 = 0x0200_0000;
24 pub const D_I: u32 = 0x0100_0000;
26 pub const D_L: u32 = 0x0080_0000;
28 pub const A_M: u32 = 0x0040_0000;
30 pub const D_MQ: u32 = 0x0020_0000;
32 pub const D_N: u32 = 0x0010_0000;
34 pub const D_O: u32 = 0x0008_0000;
36 pub const D_P: u32 = 0x0004_0000;
38 pub const A_Q: u32 = 0x0002_0000;
40 pub const D_R: u32 = 0x0001_0000;
42 pub const D_S: u32 = 0x0000_8000;
44 pub const D_T: u32 = 0x0000_4000;
46 pub const D_U: u32 = 0x0000_2000;
48 pub const D_V: u32 = 0x0000_1000;
50 pub const D_W: u32 = 0x0000_0800;
52 pub const D_X: u32 = 0x0000_0400;
54 pub const D_Y: u32 = 0x0000_0200;
56 pub const D_Z: u32 = 0x0000_0100;
58 pub const A_NR: u32 = 0x0000_0080;
60 pub const A_NS: u32 = 0x0000_0040;
62 pub const A_NT: u32 = 0x0000_0020;
64 pub const A_NX: u32 = 0x0000_0010;
66 pub const A_NZ: u32 = 0x0000_0008;
68 pub const D_ZH: u32 = 0x0000_0004;
70 pub const D_K: u32 = 0x0000_0002;
72 pub const URL: u32 = 0x0000_0001;
74 pub const UNK: u32 = 0x0000_0000;
76
77 pub fn any(p: u32, flags: &[u32]) -> bool {
79 flags.iter().any(|f| p & f != 0)
80 }
81}
82
83impl fmt::Display for POSTAG {
84 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
85 f.write_str("POSTAG")
86 }
87}