diff --git a/Cargo.toml b/Cargo.toml index 372ede38..f26c9e40 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "xml-rs" -version = "0.1.9" +version = "0.1.10" authors = ["Vladimir Matveev "] license = "MIT" description = "An XML library in pure Rust" diff --git a/src/reader/parser.rs b/src/reader/parser.rs index 5db4acd2..bb5d3789 100644 --- a/src/reader/parser.rs +++ b/src/reader/parser.rs @@ -349,15 +349,16 @@ impl PullParser { /// # Parameters /// * `t` --- next token; /// * `on_name` --- a callback which is executed when whitespace is encountered. - fn read_qualified_name(&mut self, t: Token, target: QualifiedNameTarget, - on_name: |&mut PullParser, Token, OwnedName| -> Option) -> Option { + fn read_qualified_name(&mut self, t: Token, target: QualifiedNameTarget, on_name: F) + -> Option + where F: Fn(&mut PullParser, Token, OwnedName) -> Option { // We can get here for the first time only when self.data.name contains zero or one character, // but first character cannot be a colon anyway if self.buf.len() <= 1 { self.read_prefix_separator = false; } - let invoke_callback = |this: &mut PullParser, t| { + let invoke_callback = |&: this: &mut PullParser, t| { let name = this.take_buf(); match name.as_slice().parse() { Some(name) => on_name(this, t, name), @@ -395,7 +396,8 @@ impl PullParser { /// # Parameters /// * `t` --- next token; /// * `on_value` --- a callback which is called when terminating quote is encountered. - fn read_attribute_value(&mut self, t: Token, on_value: |&mut PullParser, String| -> Option) -> Option { + fn read_attribute_value(&mut self, t: Token, on_value: F) -> Option + where F: Fn(&mut PullParser, String) -> Option { match t { Token::Whitespace(_) if self.data.quote.is_none() => None, // skip leading whitespace