MCPcopy Create free account
hub / github.com/bytecodealliance/wasmtime / gen_template

Function gen_template

cranelift/codegen/meta/src/gen_settings.rs:333–362  ·  view source on GitHub ↗
(group: &SettingGroup, fmt: &mut Formatter)

Source from the content-addressed store, hash-verified

331}
332
333fn 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
364fn gen_display(group: &SettingGroup, fmt: &mut Formatter) {
365 fmt.add_block("impl fmt::Display for Flags", |fmt| {

Callers 1

gen_groupFunction · 0.85

Calls 9

default_byteMethod · 0.80
collectMethod · 0.80
doc_commentMethod · 0.80
unwrapMethod · 0.45
get_mutMethod · 0.45
mapMethod · 0.45
iterMethod · 0.45
joinMethod · 0.45
add_blockMethod · 0.45

Tested by

no test coverage detected