use crate::core::ir::TypeRef;
use minijinja::context;
pub(super) fn gen_stub_return(ty: &TypeRef, has_error: bool, func_name: &str) -> String {
if has_error {
return crate::backends::php::template_env::render(
"php_stub_error_body.jinja",
context! {
func_name => func_name,
},
);
}
match ty {
TypeRef::Optional(_) => "None".to_string(),
TypeRef::Vec(_) => "Vec::new()".to_string(),
TypeRef::String => "String::new()".to_string(),
TypeRef::Primitive(p) => {
use crate::core::ir::PrimitiveType;
match p {
PrimitiveType::Bool => "false".to_string(),
PrimitiveType::F32 | PrimitiveType::F64 => "0.0".to_string(),
_ => "0".to_string(),
}
}
TypeRef::Map(_, _) => "Default::default()".to_string(),
_ => "Default::default()".to_string(),
}
}