in api_generator/src/generator/code_gen/url/enum_builder.rs [106:153]
fn parts(path: &Path) -> syn::Variant {
let params = &path.path.params();
let name = params
.iter()
.map(|k| k.to_pascal_case())
.collect::<Vec<_>>()
.join("");
let doc = match params.len() {
1 => doc(params[0].replace('_', " ").to_pascal_case()),
n => {
let mut d: String = params
.iter()
.enumerate()
.filter(|&(i, _)| i != n - 1)
.map(|(_, e)| e.replace('_', " ").to_pascal_case())
.collect::<Vec<_>>()
.join(", ");
d.push_str(
format!(" and {}", params[n - 1].replace('_', " ").to_pascal_case()).as_str(),
);
doc(d)
}
};
syn::Variant {
ident: ident(name),
attrs: vec![doc],
discriminant: None,
data: syn::VariantData::Tuple(
path.path
.params()
.iter()
.map(|&p| {
let ty = &path.parts[p].ty;
syn::Field {
ident: None,
vis: syn::Visibility::Inherited,
attrs: vec![],
ty: typekind_to_ty(p, ty, true, false),
}
})
.collect(),
),
}
}