fn generate_enum()

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))
    }