pub(in crate::backends::wasm::gen_bindings) fn emit_rustdoc(doc: &str) -> String {
if doc.is_empty() {
return String::new();
}
let sanitized =
crate::codegen::doc_emission::sanitize_rust_idioms(doc, crate::codegen::doc_emission::DocTarget::TsDoc);
crate::backends::wasm::template_env::render(
"rustdoc",
minijinja::context! {
lines => sanitized.lines().collect::<Vec<_>>(),
},
)
}
pub(in crate::backends::wasm::gen_bindings) fn gen_env_shims(shim_names: &[String]) -> String {
const SUPPORTED_SHIMS: &[&str] = &[
"iswspace",
"iswalnum",
"towupper",
"iswalpha",
"iswlower",
"iswupper",
"iswxdigit",
"towlower",
"memchr",
"strcmp",
];
let shims = shim_names
.iter()
.filter(|name| SUPPORTED_SHIMS.contains(&name.as_str()))
.collect::<Vec<_>>();
if shims.is_empty() {
return String::new();
}
crate::backends::wasm::template_env::render("env_shims", minijinja::context! { shims => shims })
.trim_end_matches('\n')
.to_string()
}