1use bitflags::bitflags;
10
11bitflags! {
12 #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
17 #[repr(transparent)]
18 pub struct SzFlags: u64 {
19 const EXPORT_DEFAULT_FLAGS = 0;
21 const EXPORT_INCLUDE_MULTI_RECORD_ENTITIES = 1 << 0;
22 const EXPORT_INCLUDE_POSSIBLY_SAME = 1 << 1;
23 const EXPORT_INCLUDE_POSSIBLY_RELATED = 1 << 2;
24 const EXPORT_INCLUDE_NAME_ONLY = 1 << 3;
25 const EXPORT_INCLUDE_DISCLOSED = 1 << 4;
26 const EXPORT_INCLUDE_SINGLE_RECORD_ENTITIES = 1 << 5;
27 const EXPORT_INCLUDE_ALL_ENTITIES = Self::EXPORT_INCLUDE_MULTI_RECORD_ENTITIES.bits() |
28 Self::EXPORT_INCLUDE_SINGLE_RECORD_ENTITIES.bits();
29 const EXPORT_INCLUDE_ALL_HAVING_RELATIONSHIPS = Self::EXPORT_INCLUDE_POSSIBLY_SAME.bits() |
30 Self::EXPORT_INCLUDE_POSSIBLY_RELATED.bits() |
31 Self::EXPORT_INCLUDE_NAME_ONLY.bits() |
32 Self::EXPORT_INCLUDE_DISCLOSED.bits();
33
34 const ENTITY_DEFAULT_FLAGS = Self::ENTITY_INCLUDE_RECORD_SUMMARY.bits() |
36 Self::ENTITY_INCLUDE_RECORD_DATA.bits() |
37 Self::ENTITY_INCLUDE_RECORD_MATCHING_INFO.bits();
38 const ENTITY_INCLUDE_POSSIBLY_SAME_RELATIONS = 1 << 6;
39 const ENTITY_INCLUDE_POSSIBLY_RELATED_RELATIONS = 1 << 7;
40 const ENTITY_INCLUDE_NAME_ONLY_RELATIONS = 1 << 8;
41 const ENTITY_INCLUDE_DISCLOSED_RELATIONS = 1 << 9;
42 const ENTITY_INCLUDE_ALL_RELATIONS = Self::ENTITY_INCLUDE_POSSIBLY_SAME_RELATIONS.bits() |
43 Self::ENTITY_INCLUDE_POSSIBLY_RELATED_RELATIONS.bits() |
44 Self::ENTITY_INCLUDE_NAME_ONLY_RELATIONS.bits() |
45 Self::ENTITY_INCLUDE_DISCLOSED_RELATIONS.bits();
46 const ENTITY_INCLUDE_ALL_FEATURES = 1 << 10;
47 const ENTITY_INCLUDE_REPRESENTATIVE_FEATURES = 1 << 11;
48 const ENTITY_INCLUDE_ENTITY_NAME = 1 << 12;
49 const ENTITY_INCLUDE_RECORD_SUMMARY = 1 << 13;
50 const ENTITY_INCLUDE_RECORD_DATA = 1 << 14;
51 const ENTITY_INCLUDE_RECORD_MATCHING_INFO = 1 << 15;
52 const ENTITY_INCLUDE_RECORD_JSON_DATA = 1 << 16;
53 const ENTITY_INCLUDE_RECORD_UNMAPPED_DATA = 1 << 17;
54 const ENTITY_INCLUDE_RECORD_FEATURE_IDS = 1 << 18;
55 const ENTITY_INCLUDE_RELATED_ENTITY_NAME = 1 << 19;
56 const ENTITY_INCLUDE_RELATED_MATCHING_INFO = 1 << 20;
57 const ENTITY_INCLUDE_RELATED_RECORD_SUMMARY = 1 << 21;
58 const ENTITY_INCLUDE_RELATED_RECORD_DATA = 1 << 22;
59
60 const RECORD_DEFAULT_FLAGS = 0;
62
63 const SEARCH_BY_ATTRIBUTES_ALL = Self::SEARCH_BY_ATTRIBUTES_STRONG.bits() |
65 Self::SEARCH_BY_ATTRIBUTES_MINIMAL_STRONG.bits() |
66 Self::SEARCH_BY_ATTRIBUTES_MINIMAL_ALL.bits();
67 const SEARCH_BY_ATTRIBUTES_STRONG = 1 << 23;
68 const SEARCH_BY_ATTRIBUTES_MINIMAL_STRONG = 1 << 24;
69 const SEARCH_BY_ATTRIBUTES_MINIMAL_ALL = 1 << 25;
70 const SEARCH_BY_ATTRIBUTES_DEFAULT_FLAGS = Self::SEARCH_BY_ATTRIBUTES_ALL.bits();
71
72 const FIND_PATH_DEFAULT_FLAGS = Self::FIND_PATH_INCLUDE_MATCHING_INFO.bits();
74 const FIND_PATH_INCLUDE_MATCHING_INFO = 1 << 26;
75 const FIND_NETWORK_DEFAULT_FLAGS = Self::FIND_NETWORK_INCLUDE_MATCHING_INFO.bits();
76 const FIND_NETWORK_INCLUDE_MATCHING_INFO = 1 << 27;
77
78 const WHY_ENTITIES_DEFAULT_FLAGS = Self::WHY_ENTITY_INCLUDE_ENTITY_NAME.bits() |
80 Self::WHY_ENTITY_INCLUDE_RECORD_SUMMARY.bits();
81 const WHY_ENTITY_INCLUDE_POSSIBLY_SAME_RELATIONS = 1 << 28;
82 const WHY_ENTITY_INCLUDE_POSSIBLY_RELATED_RELATIONS = 1 << 29;
83 const WHY_ENTITY_INCLUDE_NAME_ONLY_RELATIONS = 1 << 30;
84 const WHY_ENTITY_INCLUDE_DISCLOSED_RELATIONS = 1 << 31;
85 const WHY_ENTITY_INCLUDE_ALL_RELATIONS = Self::WHY_ENTITY_INCLUDE_POSSIBLY_SAME_RELATIONS.bits() |
86 Self::WHY_ENTITY_INCLUDE_POSSIBLY_RELATED_RELATIONS.bits() |
87 Self::WHY_ENTITY_INCLUDE_NAME_ONLY_RELATIONS.bits() |
88 Self::WHY_ENTITY_INCLUDE_DISCLOSED_RELATIONS.bits();
89 const WHY_ENTITY_INCLUDE_ALL_FEATURES = 1 << 32;
90 const WHY_ENTITY_INCLUDE_REPRESENTATIVE_FEATURES = 1 << 33;
91 const WHY_ENTITY_INCLUDE_ENTITY_NAME = 1 << 34;
92 const WHY_ENTITY_INCLUDE_RECORD_SUMMARY = 1 << 35;
93 const WHY_ENTITY_INCLUDE_RECORD_DATA = 1 << 36;
94 const WHY_ENTITY_INCLUDE_RECORD_MATCHING_INFO = 1 << 37;
95 const WHY_ENTITY_INCLUDE_RECORD_JSON_DATA = 1 << 38;
96 const WHY_ENTITY_INCLUDE_RECORD_UNMAPPED_DATA = 1 << 39;
97 const WHY_ENTITY_INCLUDE_RECORD_FEATURE_IDS = 1 << 40;
98 const WHY_ENTITY_INCLUDE_RELATED_ENTITY_NAME = 1 << 41;
99 const WHY_ENTITY_INCLUDE_RELATED_MATCHING_INFO = 1 << 42;
100 const WHY_ENTITY_INCLUDE_RELATED_RECORD_SUMMARY = 1 << 43;
101 const WHY_ENTITY_INCLUDE_RELATED_RECORD_DATA = 1 << 44;
102
103 const VIRTUAL_ENTITY_DEFAULT_FLAGS = Self::ENTITY_INCLUDE_RECORD_SUMMARY.bits();
105
106 const HOW_ENTITY_DEFAULT_FLAGS = Self::HOW_ENTITY_INCLUDE_NAME.bits();
108 const HOW_ENTITY_INCLUDE_NAME = 1 << 45;
109 }
110}
111
112impl Default for SzFlags {
113 fn default() -> Self {
114 SzFlags::empty()
115 }
116}
117
118impl SzFlags {
119 pub const ADD_RECORD_DEFAULT: SzFlags = SzFlags::empty();
121
122 pub const DELETE_RECORD_DEFAULT: SzFlags = SzFlags::empty();
124
125 pub const REEVALUATE_RECORD_DEFAULT: SzFlags = SzFlags::empty();
127
128 pub const REEVALUATE_ENTITY_DEFAULT: SzFlags = SzFlags::empty();
130
131 pub const GET_ENTITY_DEFAULT: SzFlags = SzFlags::ENTITY_DEFAULT_FLAGS;
133
134 pub const GET_RECORD_DEFAULT: SzFlags = SzFlags::RECORD_DEFAULT_FLAGS;
136
137 pub const SEARCH_BY_ATTRIBUTES_DEFAULT: SzFlags = SzFlags::SEARCH_BY_ATTRIBUTES_DEFAULT_FLAGS;
139
140 pub const FIND_INTERESTING_ENTITIES_DEFAULT: SzFlags = SzFlags::ENTITY_DEFAULT_FLAGS;
142
143 pub const FIND_PATH_DEFAULT: SzFlags = SzFlags::FIND_PATH_DEFAULT_FLAGS;
145
146 pub const FIND_NETWORK_DEFAULT: SzFlags = SzFlags::FIND_NETWORK_DEFAULT_FLAGS;
148
149 pub const WHY_ENTITY_DEFAULT: SzFlags = SzFlags::WHY_ENTITIES_DEFAULT_FLAGS;
151
152 pub const WHY_RECORD_DEFAULT: SzFlags = SzFlags::WHY_ENTITIES_DEFAULT_FLAGS;
154
155 pub const WHY_SEARCH_DEFAULT: SzFlags = SzFlags::WHY_ENTITIES_DEFAULT_FLAGS;
157
158 pub const HOW_ENTITY_DEFAULT: SzFlags = SzFlags::HOW_ENTITY_DEFAULT_FLAGS;
160
161 pub const GET_VIRTUAL_ENTITY_DEFAULT: SzFlags = SzFlags::VIRTUAL_ENTITY_DEFAULT_FLAGS;
163}