INNER CODE UNIT · Rust
parse_method_decl
dontpanic92/OpenPAL3 · crosscom/ccidl-rs/src/lib.rs:698
fn parse_method_decl(decl: &str, attrs: Attrs) -> Result<Method, String> {
let open = decl
.find('(')
.ok_or_else(|| format!("method missing '(' in {decl:?}"))?;
let close = decl
.rfind(')')
.ok_or_else(|| format!("method missing ')' in {decl:?}"))?;
let prefix = decl[..open].trim();
let (ret_ty, name) = split_type_and_name(prefix)?;
let params_src = decl[open + 1..close].trim();
let mut params = Vec::new();
if !params_src.is_empty() {
for param in split_params(params_src) {
params.push(parse_param(param.trim())?);
}
}