You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/main.rs
+20-20Lines changed: 20 additions & 20 deletions
Original file line number
Diff line number
Diff line change
@@ -545,7 +545,7 @@ fn main() {
545
545
letmut deferred = Vec::new();
546
546
let start = Instant::now();
547
547
'main:loop{// Main loop over the XML nodes
548
-
let event = state.reader.read_event(&mut buf).unwrap_or_else(|e| fatalerr!("Error: failed to parse XML at position {}: {}", state.reader.buffer_position(), e));
548
+
let event = state.reader.read_event_into(&mut buf).unwrap_or_else(|e| fatalerr!("Error: failed to parse XML at position {}: {}", state.reader.buffer_position(), e));
549
549
loop{// Repeat loop to be able to process a node twice
state.path.push_str(state.reader.decode(e.name()).unwrap_or_else(|err| fatalerr!("Error: failed to decode XML tag '{}': {}",String::from_utf8_lossy(e.name()), err)));
627
+
state.path.push_str(&state.reader.decoder().decode(e.name().as_ref()).unwrap_or_else(|err| fatalerr!("Error: failed to decode XML tag '{}': {}",String::from_utf8_lossy(e.name().as_ref()), err)));
628
628
}
629
629
ifletSome(path) = &state.deferred{
630
630
if state.path.starts_with(path){returnStep::Defer;}
state.text.push_str(&format!("<{}>",&e.unescape_and_decode(&state.reader).unwrap_or_else(|err| fatalerr!("Error: failed to decode XML tag '{}': {}",String::from_utf8_lossy(e.name()), err))));
648
+
state.text.push_str(&format!("<{}>",state.reader.decoder().decode(e.name().as_ref()).unwrap_or_else(|err| fatalerr!("Error: failed to decode XML tag '{}': {}",String::from_utf8_lossy(e.name().as_ref()), err))));
649
649
returnStep::Next;
650
650
}
651
651
elseif state.gmltoewkb{
652
-
match state.reader.decode(e.name()){
652
+
match state.reader.decoder().decode(e.name().as_ref()){
letmut value = String::from(state.reader.decode(&attr.value).unwrap_or_else(|err| fatalerr!("Error: failed to decode XML attribute '{}': {}",String::from_utf8_lossy(&attr.value), err)));
678
+
let key = state.reader.decoder().decode(attr.key.as_ref());
679
+
if key.is_err(){continue;}
680
+
match key.unwrap().as_ref(){
681
+
"srsName" => {
682
+
letmut value = String::from(state.reader.decoder().decode(&attr.value).unwrap_or_else(|err| fatalerr!("Error: failed to decode XML attribute '{}': {}",String::from_utf8_lossy(&attr.value), err)));
Err(_) => if !state.settings.hush_warning{eprintln!("Warning: invalid srsName {} in GML", value);}
690
691
}
691
692
},
692
-
Ok("srsDimension") => {
693
-
let value = state.reader.decode(&attr.value).unwrap_or_else(|err| fatalerr!("Error: failed to decode XML attribute '{}': {}",String::from_utf8_lossy(&attr.value), err));
693
+
"srsDimension" => {
694
+
let value = state.reader.decoder().decode(&attr.value).unwrap_or_else(|err| fatalerr!("Error: failed to decode XML attribute '{}': {}",String::from_utf8_lossy(&attr.value), err));
694
695
match value.parse::<u8>(){
695
696
Ok(int) => {
696
697
ifletSome(geom) = state.gmlcoll.last_mut(){ geom.dims = int };
if state.filtered || state.skipped{returnStep::Next;}
783
784
if state.xmltotext{
784
-
state.text.push_str(&e.unescape_and_decode(&state.reader).unwrap_or_else(|err| fatalerr!("Error: failed to decode XML text node '{}': {}",String::from_utf8_lossy(e), err)));
785
+
state.text.push_str(&e.unescape().unwrap_or_else(|err| fatalerr!("Error: failed to decode XML text node '{}': {}",String::from_utf8_lossy(e), err)));
785
786
returnStep::Next;
786
787
}
787
788
elseif state.gmltoewkb{
788
789
if state.gmlpos{
789
-
let value = String::from(&e.unescape_and_decode(&state.reader).unwrap_or_else(|err| fatalerr!("Error: failed to decode XML gmlpos '{}': {}",String::from_utf8_lossy(e), err)));
790
+
let value = String::from(e.unescape().unwrap_or_else(|err| fatalerr!("Error: failed to decode XML gmlpos '{}': {}",String::from_utf8_lossy(e), err)));
790
791
for pos in value.split(' '){
791
792
state.gmlcoll.last_mut().unwrap().rings.last_mut().unwrap().push(fast_float::parse(pos).unwrap_or_else(|err| fatalerr!("Error: failed to parse GML pos '{}' into float: {}", pos, err)));
let unescaped = e.unescaped().unwrap_or_else(|err| fatalerr!("Error: failed to unescape XML text node '{}': {}",String::from_utf8_lossy(e), err));
804
-
let decoded = state.reader.decode(&unescaped).unwrap_or_else(|err| fatalerr!("Error: failed to decode XML text node '{}': {}",String::from_utf8_lossy(e), err));
804
+
let decoded = e.unescape().unwrap_or_else(|err| fatalerr!("Error: failed to decode XML text node '{}': {}",String::from_utf8_lossy(e), err));
805
805
if table.columns[i].trim{
806
-
let trimmed = state.trimre.replace_all(decoded," ");
806
+
let trimmed = state.trimre.replace_all(&decoded," ");
0 commit comments