in yaml_test_runner/src/step/do.rs [332:362]
fn generate_enum(
enum_name: &str,
variant: &str,
options: &[serde_json::Value],
) -> anyhow::Result<Tokens> {
if !variant.is_empty() && !options.contains(&serde_json::Value::String(variant.to_owned()))
{
return Err(anyhow!(
"options {:?} does not contain value {}",
&options,
variant
));
}
let e: String = enum_name.to_pascal_case();
let enum_name = syn::Ident::from(e.as_str());
let variant = if variant.is_empty() {
// TODO: Should we simply omit empty Refresh tests?
if e == "Refresh" {
syn::Ident::from("True")
} else if e == "Size" {
syn::Ident::from("Unspecified")
} else {
return Err(anyhow!("unhandled empty value for {}", &e));
}
} else {
syn::Ident::from(variant.to_pascal_case())
};
Ok(quote!(#enum_name::#variant))
}