Emits getters for each setting value.
(group: &SettingGroup, fmt: &mut Formatter)
| 179 | |
| 180 | /// Emits getters for each setting value. |
| 181 | fn gen_getters(group: &SettingGroup, fmt: &mut Formatter) { |
| 182 | fmt.doc_comment("User-defined settings."); |
| 183 | fmtln!(fmt, "#[allow(dead_code, reason = \"generated code\")]"); |
| 184 | fmt.add_block("impl Flags", |fmt| { |
| 185 | if !group.settings.is_empty() { |
| 186 | fmt.doc_comment("Dynamic numbered predicate getter."); |
| 187 | fmt.add_block("fn numbered_predicate(&self, p: usize) -> bool", |fmt| { |
| 188 | fmtln!( |
| 189 | fmt, |
| 190 | "self.bytes[{} + p / 8] & (1 << (p % 8)) != 0", |
| 191 | group.bool_start_byte_offset |
| 192 | ); |
| 193 | }); |
| 194 | } |
| 195 | |
| 196 | for setting in &group.settings { |
| 197 | gen_getter(setting, fmt); |
| 198 | } |
| 199 | }); |
| 200 | } |
| 201 | |
| 202 | #[derive(Hash, PartialEq, Eq)] |
| 203 | enum SettingOrPreset<'a> { |
no test coverage detected