Factor out visibility conversion helper
diff --git a/syntax/parse.rs b/syntax/parse.rs
index 0ef0b0b..93dfba0 100644
--- a/syntax/parse.rs
+++ b/syntax/parse.rs
@@ -115,12 +115,7 @@
continue;
}
};
- let visibility = Token => vis.pub_token.span,
- Visibility::Crate(vis) => vis.crate_token.span,
- Visibility::Restricted(vis) => vis.pub_token.span,
- Visibility::Inherited => ident.span(),
- });
+ let visibility = visibility_pub(&field.vis, &ident);
fields.push(Var {
doc,
attrs,
@@ -130,12 +125,7 @@
});
}
- let visibility = Token => vis.pub_token.span,
- Visibility::Crate(vis) => vis.crate_token.span,
- Visibility::Restricted(vis) => vis.pub_token.span,
- Visibility::Inherited => item.ident.span(),
- });
+ let visibility = visibility_pub(&item.vis, &item.ident);
let struct_token = item.struct_token;
let name = pair(namespace, &item.ident, cxx_name, rust_name);
let brace_token = named_fields.brace_token;
@@ -194,12 +184,7 @@
}
}
- let visibility = Token => vis.pub_token.span,
- Visibility::Crate(vis) => vis.crate_token.span,
- Visibility::Restricted(vis) => vis.pub_token.span,
- Visibility::Inherited => item.ident.span(),
- });
+ let visibility = visibility_pub(&item.vis, &item.ident);
let enum_token = item.enum_token;
let brace_token = item.brace_token;
@@ -426,12 +411,7 @@
},
);
- let visibility = Token => vis.pub_token.span,
- Visibility::Crate(vis) => vis.crate_token.span,
- Visibility::Restricted(vis) => vis.pub_token.span,
- Visibility::Inherited => foreign_type.ident.span(),
- });
+ let visibility = visibility_pub(&foreign_type.vis, &foreign_type.ident);
let type_token = foreign_type.type_token;
let name = pair(namespace, &foreign_type.ident, cxx_name, rust_name);
let generics = Lifetimes {
@@ -597,12 +577,7 @@
let mut throws_tokens = None;
let ret = parse_return_type(&foreign_fn.sig.output, &mut throws_tokens)?;
let throws = throws_tokens.is_some();
- let visibility = Token => vis.pub_token.span,
- Visibility::Crate(vis) => vis.crate_token.span,
- Visibility::Restricted(vis) => vis.pub_token.span,
- Visibility::Inherited => foreign_fn.sig.ident.span(),
- });
+ let visibility = visibility_pub(&foreign_fn.vis, &foreign_fn.sig.ident);
let unsafety = foreign_fn.sig.unsafety;
let fn_token = foreign_fn.sig.fn_token;
let name = pair(namespace, &foreign_fn.sig.ident, cxx_name, rust_name);
@@ -749,12 +724,7 @@
return Err(Error::new_spanned(span, msg));
}
- let visibility = Token => vis.pub_token.span,
- Visibility::Crate(vis) => vis.crate_token.span,
- Visibility::Restricted(vis) => vis.pub_token.span,
- Visibility::Inherited => ident.span(),
- });
+ let visibility = visibility_pub(&visibility, &ident);
let name = pair(namespace, &ident, cxx_name, rust_name);
Ok(Api::TypeAlias(TypeAlias {
@@ -834,12 +804,7 @@
},
);
- let visibility = Token => vis.pub_token.span,
- Visibility::Crate(vis) => vis.crate_token.span,
- Visibility::Restricted(vis) => vis.pub_token.span,
- Visibility::Inherited => ident.span(),
- });
+ let visibility = visibility_pub(&visibility, &ident);
let name = pair(namespace, &ident, cxx_name, rust_name);
Ok(match lang {
@@ -1228,6 +1193,15 @@
}
}
+fn visibility_pub(vis: &Visibility, inherited: &Ident) -> Token![pub] {
+ Token => vis.pub_token.span,
+ Visibility::Crate(vis) => vis.crate_token.span,
+ Visibility::Restricted(vis) => vis.pub_token.span,
+ Visibility::Inherited => inherited.span(),
+ })
+}
+
fn pair(namespace: Namespace, default: &Ident, cxx: Option<Ident>, rust: Option<Ident>) -> Pair {
let default = || default.clone();
Pair {