Я хочу использовать xml::reader::EventReader
из xml_rs
.
Мне нужны как проанализированные события, так и их позиция в файле XML:
use xml::common::{Position, TextPosition};
use xml::reader::{EventReader};
fn main() {
let s = "<?xml version=\"1.0\"\nencoding=\"UTF-8\"?>\n<ooo></ooo>\n";
let xml = EventReader::new(s.as_bytes());
for e in xml {
println!("event: {:?}", e);
println!("pos: {:?}", xml.position());
}
}
Но компилятор жалуется :
error[E0382]: borrow of moved value: `xml`
--> src/main.rs:9:31
|
6 | let xml = EventReader::new(s.as_bytes());
| --- move occurs because `xml` has type `xml::reader::EventReader<&[u8]>`, which does not implement the `Copy` trait
7 | for e in xml {
| ---
| |
| value moved here
| help: consider borrowing to avoid moving into the for loop: `&xml`
8 | println!("event: {:?}", e);
9 | println!("pos: {:?}", xml.position());
| ^^^ value borrowed here after move
Без второго println!
код работает.
[package]
name = "xmlproblem"
version = "0.1.0"
edition = "2018"
[dependencies]
xml-rs = "0.8"
Как мне решить эту проблему?