use super::*;
pub(super) fn generate(
TSEnum {
export,
generics,
variants,
..
}: &TSEnum,
src: &mut Source,
) {
let braced_gen = braced_generic(&generics, None);
for (t_name, contents) in variants.iter() {
src.ln_push("");
if *export {
src.push("export ");
}
src.push("function ");
src.push(&t_name);
src.push(&braced_gen);
src.push("(");
if contents != "null" {
src.push("contents: ");
src.push(&t_name);
src.push(&braced_gen);
}
src.push("): { ");
src.push(&t_name);
src.push(": ");
src.push(&t_name);
src.push(&braced_gen);
src.push(" } {");
src.ln_push_1("return { ");
src.push(&t_name);
if contents != "null" {
src.push(": contents };");
} else {
src.push(": null };");
}
src.ln_push("}");
}
}