use std::collections::HashSet;
pub(super) fn is_enum_typed(ty: &crate::core::ir::TypeRef, struct_names: &HashSet<&str>) -> bool {
use crate::core::ir::TypeRef;
match ty {
TypeRef::Named(name) => !struct_names.contains(name.as_str()),
TypeRef::Optional(inner) => {
matches!(inner.as_ref(), TypeRef::Named(name) if !struct_names.contains(name.as_str()))
}
_ => false,
}
}
pub(super) fn extract_kotlin_android_fixture_default(
method_name: &str,
fixture: &crate::e2e::fixture::Fixture,
) -> Option<String> {
use heck::ToLowerCamelCase;
let backend_input = fixture.input.get("backend").and_then(|v| v.as_object())?;
let val = backend_input
.get(&method_name.to_lowercase())
.or_else(|| backend_input.get(&method_name.to_lower_camel_case()))?;
Some(match val {
serde_json::Value::Number(n) => {
if let Some(i) = n.as_i64() {
if i == 0 { "1".to_string() } else { i.to_string() }
} else if let Some(u) = n.as_u64() {
if u == 0 { "1".to_string() } else { u.to_string() }
} else {
n.to_string()
}
}
serde_json::Value::String(s) => format!("\"{}\"", s),
serde_json::Value::Bool(b) => b.to_string(),
_ => return None, })
}