mirror of
https://github.com/fluencelabs/wasm-bindgen
synced 2025-06-20 00:11:23 +00:00
Deindent a few helper functions in dictionaries
No need for it to be an inner function now that it's using methods!
This commit is contained in:
@ -191,7 +191,7 @@ impl<'src> FirstPassRecord<'src> {
|
||||
None => return,
|
||||
};
|
||||
let mut fields = Vec::new();
|
||||
if !push_members(self, def.identifier.0, &mut fields) {
|
||||
if !self.append_dictionary_members(def.identifier.0, &mut fields) {
|
||||
return
|
||||
}
|
||||
|
||||
@ -199,20 +199,21 @@ impl<'src> FirstPassRecord<'src> {
|
||||
name: rust_ident(&camel_case_ident(def.identifier.0)),
|
||||
fields,
|
||||
});
|
||||
}
|
||||
|
||||
fn push_members<'src>(
|
||||
data: &FirstPassRecord<'src>,
|
||||
fn append_dictionary_members(
|
||||
&self,
|
||||
dict: &'src str,
|
||||
dst: &mut Vec<ast::DictionaryField>,
|
||||
) -> bool {
|
||||
let dict_data = &data.dictionaries[&dict];
|
||||
let dict_data = &self.dictionaries[&dict];
|
||||
let definition = dict_data.definition.unwrap();
|
||||
|
||||
// > The order of the dictionary members on a given dictionary is
|
||||
// > such that inherited dictionary members are ordered before
|
||||
// > non-inherited members ...
|
||||
if let Some(parent) = &definition.inheritance {
|
||||
if !push_members(data, parent.identifier.0, dst) {
|
||||
if !self.append_dictionary_members(parent.identifier.0, dst) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
@ -225,7 +226,7 @@ impl<'src> FirstPassRecord<'src> {
|
||||
let members = definition.members.body.iter();
|
||||
let partials = dict_data.partials.iter().flat_map(|d| &d.members.body);
|
||||
for member in members.chain(partials) {
|
||||
match mkfield(data, member) {
|
||||
match self.dictionary_field(member) {
|
||||
Some(f) => dst.push(f),
|
||||
None => {
|
||||
warn!(
|
||||
@ -251,12 +252,12 @@ impl<'src> FirstPassRecord<'src> {
|
||||
return true
|
||||
}
|
||||
|
||||
fn mkfield<'src>(
|
||||
data: &FirstPassRecord<'src>,
|
||||
fn dictionary_field(
|
||||
&self,
|
||||
field: &'src DictionaryMember<'src>,
|
||||
) -> Option<ast::DictionaryField> {
|
||||
// use argument position now as we're just binding setters
|
||||
let ty = field.type_.to_idl_type(data)?.to_syn_type(TypePosition::Argument)?;
|
||||
let ty = field.type_.to_idl_type(self)?.to_syn_type(TypePosition::Argument)?;
|
||||
|
||||
// Slice types aren't supported because they don't implement
|
||||
// `Into<JsValue>`
|
||||
@ -283,7 +284,6 @@ impl<'src> FirstPassRecord<'src> {
|
||||
ty,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
fn append_ns(
|
||||
&'src self,
|
||||
|
Reference in New Issue
Block a user