(group: &SettingGroup, fmt: &mut Formatter)
| 331 | } |
| 332 | |
| 333 | fn gen_template(group: &SettingGroup, fmt: &mut Formatter) { |
| 334 | let mut default_bytes: Vec<u8> = vec![0; group.settings_size as usize]; |
| 335 | for setting in &group.settings { |
| 336 | *default_bytes.get_mut(setting.byte_offset as usize).unwrap() |= setting.default_byte(); |
| 337 | } |
| 338 | |
| 339 | let default_bytes: Vec<String> = default_bytes.iter().map(|x| format!("{x:#04x}")).collect(); |
| 340 | let default_bytes_str = default_bytes.join(", "); |
| 341 | |
| 342 | fmt.add_block( |
| 343 | "static TEMPLATE: detail::Template = detail::Template", |
| 344 | |fmt| { |
| 345 | fmtln!(fmt, "name: \"{}\",", group.name); |
| 346 | fmtln!(fmt, "descriptors: &DESCRIPTORS,"); |
| 347 | fmtln!(fmt, "enumerators: &ENUMERATORS,"); |
| 348 | fmtln!(fmt, "hash_table: &HASH_TABLE,"); |
| 349 | fmtln!(fmt, "defaults: &[{}],", default_bytes_str); |
| 350 | fmtln!(fmt, "presets: &PRESETS,"); |
| 351 | }, |
| 352 | ); |
| 353 | fmtln!(fmt, ";"); |
| 354 | |
| 355 | fmt.doc_comment(format!( |
| 356 | "Create a `settings::Builder` for the {} settings group.", |
| 357 | group.name |
| 358 | )); |
| 359 | fmt.add_block("pub fn builder() -> Builder", |fmt| { |
| 360 | fmtln!(fmt, "Builder::new(&TEMPLATE)"); |
| 361 | }); |
| 362 | } |
| 363 | |
| 364 | fn gen_display(group: &SettingGroup, fmt: &mut Formatter) { |
| 365 | fmt.add_block("impl fmt::Display for Flags", |fmt| { |
no test coverage detected