Skip to content

Commit d8c806a

Browse files
author
Jay Jackson
committed
fmt
1 parent fdb46f5 commit d8c806a

File tree

9 files changed

+109
-47
lines changed

9 files changed

+109
-47
lines changed

src/de/map.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -245,14 +245,14 @@ where
245245
// that value should be taken from the text content of the
246246
// XML node
247247
seed.deserialize(VALUE_KEY.into_deserializer()).map(Some)
248-
},
248+
}
249249
DeEvent::Text(_) | DeEvent::CData(_) => {
250250
self.source = ValueSource::Text;
251251
// Deserialize `key` from special attribute name which means
252252
// that value should be taken from the text content of the
253253
// XML node
254254
seed.deserialize(TEXT_KEY.into_deserializer()).map(Some)
255-
},
255+
}
256256
// Used to deserialize collections of enums, like:
257257
// <root>
258258
// <A/>
@@ -272,13 +272,13 @@ where
272272
DeEvent::Start(e) if self.has_value_field && not_in(self.fields, e, decoder)? => {
273273
self.source = ValueSource::Content;
274274
seed.deserialize(VALUE_KEY.into_deserializer()).map(Some)
275-
},
275+
}
276276
DeEvent::Start(e) => {
277277
self.source = ValueSource::Nested;
278278

279279
let de = QNameDeserializer::from_elem(e.name(), decoder)?;
280280
seed.deserialize(de).map(Some)
281-
},
281+
}
282282
// Stop iteration after reaching a closing tag
283283
DeEvent::End(e) if e.name() == self.start.name() => Ok(None),
284284
// This is a unmatched closing tag, so the XML is invalid
@@ -701,7 +701,7 @@ where
701701
DeEvent::Start(e) if !self.filter.is_suitable(e, decoder)? => {
702702
self.map.de.skip()?;
703703
continue;
704-
},
704+
}
705705
// Stop iteration when list elements ends
706706
#[cfg(not(feature = "overlapped-lists"))]
707707
DeEvent::Start(e) if !self.filter.is_suitable(e, decoder)? => Ok(None),
@@ -847,7 +847,7 @@ where
847847
// TODO: May be assert that here we expect only matching closing tag?
848848
self.map.de.read_to_end(e.name())?;
849849
value
850-
},
850+
}
851851
// SAFETY: we use that deserializer only when Start(element), Text,
852852
// or CData event Start(tag), Text, CData was peeked already
853853
_ => unreachable!(),

src/events/attributes.rs

Lines changed: 69 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -632,16 +632,11 @@ impl<'a> IterState<'a> {
632632
Some((_, b'\'')) => b'\'',
633633

634634
Some((offset, &q)) => {
635-
if let Some(q) = self
636-
.custom_quotes
637-
.iter()
638-
.find(|(o, _)| *o == q)
639-
.map(|(_, c)| *c)
640-
{
635+
if let Some((_, c)) = self.custom_quotes.iter().find(|(o, _)| *o == q) {
641636
// Input: ` key = q`
642637
// | ^
643638
// offset
644-
q
639+
*c
645640
} else {
646641
// Input: ` key = x`
647642
// | ^
@@ -1057,6 +1052,26 @@ mod xml {
10571052
assert_eq!(iter.next(), None);
10581053
}
10591054

1055+
#[test]
1056+
fn double_squoted() {
1057+
let mut iter = Attributes::new_with_custom_quotes(
1058+
r#"tag key=`value()=>} other=`(e) => {}}"#,
1059+
3,
1060+
&[(b'`', b'}')],
1061+
);
1062+
1063+
assert_eq!(
1064+
iter.next(),
1065+
Some(Ok(Attribute {
1066+
key: QName(b"key"),
1067+
value: Cow::Borrowed(b"value()=>"),
1068+
quote: Attr::CustomQ(b'`', b'}', (), ())
1069+
}))
1070+
);
1071+
assert_eq!(iter.next(), None);
1072+
assert_eq!(iter.next(), None);
1073+
}
1074+
10601075
/// Attribute have a value enclosed in double quotes
10611076
#[test]
10621077
fn double_quoted() {
@@ -1082,6 +1097,35 @@ mod xml {
10821097
assert_eq!(iter.next(), None);
10831098
}
10841099

1100+
/// Attribute have a value enclosed in custom quotes
1101+
#[test]
1102+
fn custom_quoted() {
1103+
let mut iter = Attributes::new_with_custom_quotes(
1104+
r#"tag key=`value` regular='attribute'"#,
1105+
3,
1106+
&[(b'`', b'`')],
1107+
);
1108+
1109+
assert_eq!(
1110+
iter.next(),
1111+
Some(Ok(Attribute {
1112+
key: QName(b"key"),
1113+
value: Cow::Borrowed(b"value"),
1114+
quote: Attr::CustomQ(b'`', b'`', (), ())
1115+
}))
1116+
);
1117+
assert_eq!(
1118+
iter.next(),
1119+
Some(Ok(Attribute {
1120+
key: QName(b"regular"),
1121+
value: Cow::Borrowed(b"attribute"),
1122+
quote: Attr::SingleQ((), ())
1123+
}))
1124+
);
1125+
assert_eq!(iter.next(), None);
1126+
assert_eq!(iter.next(), None);
1127+
}
1128+
10851129
/// Attribute have a value, not enclosed in quotes
10861130
#[test]
10871131
fn unquoted() {
@@ -1271,6 +1315,24 @@ mod xml {
12711315
assert_eq!(iter.next(), None);
12721316
}
12731317

1318+
/// Attribute have a value, not enclosed in quotes
1319+
#[test]
1320+
fn custom_quoted() {
1321+
let mut iter =
1322+
Attributes::new_with_custom_quotes(r#"tag key = `value` "#, 3, &[(b'`', b'`')]);
1323+
1324+
assert_eq!(
1325+
iter.next(),
1326+
Some(Ok(Attribute {
1327+
key: QName(b"key"),
1328+
value: Cow::Borrowed(b"value"),
1329+
quote: Attr::CustomQ(b'`', b'`', (), ())
1330+
}))
1331+
);
1332+
assert_eq!(iter.next(), None);
1333+
assert_eq!(iter.next(), None);
1334+
}
1335+
12741336
/// Attribute have a value, not enclosed in quotes
12751337
#[test]
12761338
fn unquoted() {

src/name.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ impl<'ns> Debug for ResolveResult<'ns> {
302302
write!(f, "Unknown(")?;
303303
write_byte_string(f, p)?;
304304
write!(f, ")")
305-
},
305+
}
306306
}
307307
}
308308
}
@@ -424,7 +424,7 @@ impl NamespaceResolver {
424424
value_len: v.len(),
425425
level,
426426
});
427-
},
427+
}
428428
Some(PrefixDeclaration::Named(prefix)) => {
429429
let start = buffer.len();
430430
buffer.extend_from_slice(prefix);
@@ -435,8 +435,8 @@ impl NamespaceResolver {
435435
value_len: v.len(),
436436
level,
437437
});
438-
},
439-
None => {},
438+
}
439+
None => {}
440440
}
441441
} else {
442442
break;
@@ -457,14 +457,14 @@ impl NamespaceResolver {
457457
None => {
458458
buffer.clear();
459459
self.bindings.clear();
460-
},
460+
}
461461
// drop all namespaces past the last valid namespace
462462
Some(last_valid_pos) => {
463463
if let Some(len) = self.bindings.get(last_valid_pos + 1).map(|n| n.start) {
464464
buffer.truncate(len);
465465
self.bindings.truncate(last_valid_pos + 1);
466466
}
467-
},
467+
}
468468
}
469469
}
470470

src/reader/mod.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -776,8 +776,8 @@ impl BangType {
776776
if i == 0 && buf.ends_with(b"--") {
777777
return Some((&[], i + 1)); // +1 for `>`
778778
}
779-
},
780-
Self::Comment => {},
779+
}
780+
Self::Comment => {}
781781
Self::CData => {
782782
if chunk[..i].ends_with(b"]]") {
783783
return Some((&chunk[..i], i + 1)); // +1 for `>`
@@ -792,7 +792,7 @@ impl BangType {
792792
if i == 0 && buf.ends_with(b"]]") {
793793
return Some((&[], i + 1)); // +1 for `>`
794794
}
795-
},
795+
}
796796
Self::DocType => {
797797
let content = &chunk[..i];
798798
let balance = memchr::memchr2_iter(b'<', b'>', content)
@@ -801,7 +801,7 @@ impl BangType {
801801
if balance == 0 {
802802
return Some((content, i + 1)); // +1 for `>`
803803
}
804-
},
804+
}
805805
}
806806
}
807807
None
@@ -854,7 +854,7 @@ impl ReadElementState {
854854
} else {
855855
*self
856856
}
857-
},
857+
}
858858

859859
// all other bytes: no state change
860860
_ => *self,

src/reader/ns_reader.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,20 +76,20 @@ impl<R> NsReader<R> {
7676
Ok(Event::Start(e)) => {
7777
self.ns_resolver.push(&e, &mut self.buffer);
7878
Ok(Event::Start(e))
79-
},
79+
}
8080
Ok(Event::Empty(e)) => {
8181
self.ns_resolver.push(&e, &mut self.buffer);
8282
// notify next `read_event_impl()` invocation that it needs to pop this
8383
// namespace scope
8484
self.pending_pop = true;
8585
Ok(Event::Empty(e))
86-
},
86+
}
8787
Ok(Event::End(e)) => {
8888
// notify next `read_event_impl()` invocation that it needs to pop this
8989
// namespace scope
9090
self.pending_pop = true;
9191
Ok(Event::End(e))
92-
},
92+
}
9393
e => e,
9494
}
9595
}

tests/encodings.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ fn test_koi8_r_encoding() {
3636
match r.read_event_into(&mut buf) {
3737
Ok(Event::Text(e)) => {
3838
e.unescape().unwrap();
39-
},
39+
}
4040
Ok(Event::Eof) => break,
4141
_ => (),
4242
}

tests/namespaces.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ fn default_ns_shadowing_empty() {
231231
Ok((ns, Start(e))) => {
232232
assert_eq!(ns, Bound(Namespace(b"urn:example:o")));
233233
assert_eq!(e.name(), QName(b"e"));
234-
},
234+
}
235235
e => panic!("Expected Start event (<outer>), got {:?}", e),
236236
}
237237
}
@@ -243,7 +243,7 @@ fn default_ns_shadowing_empty() {
243243
assert_eq!(ns, Bound(Namespace(b"urn:example:i")));
244244
assert_eq!(e.name(), QName(b"e"));
245245
e
246-
},
246+
}
247247
e => panic!("Expecting Empty event, got {:?}", e),
248248
};
249249

@@ -274,7 +274,7 @@ fn default_ns_shadowing_empty() {
274274
Ok((ns, End(e))) => {
275275
assert_eq!(ns, Bound(Namespace(b"urn:example:o")));
276276
assert_eq!(e.name(), QName(b"e"));
277-
},
277+
}
278278
e => panic!("Expected End event (<outer>), got {:?}", e),
279279
}
280280
}
@@ -292,7 +292,7 @@ fn default_ns_shadowing_expanded() {
292292
Ok((ns, Start(e))) => {
293293
assert_eq!(ns, Bound(Namespace(b"urn:example:o")));
294294
assert_eq!(e.name(), QName(b"e"));
295-
},
295+
}
296296
e => panic!("Expected Start event (<outer>), got {:?}", e),
297297
}
298298
}
@@ -304,7 +304,7 @@ fn default_ns_shadowing_expanded() {
304304
assert_eq!(ns, Bound(Namespace(b"urn:example:i")));
305305
assert_eq!(e.name(), QName(b"e"));
306306
e
307-
},
307+
}
308308
e => panic!("Expecting Start event (<inner>), got {:?}", e),
309309
};
310310
let mut attrs = e
@@ -334,15 +334,15 @@ fn default_ns_shadowing_expanded() {
334334
Ok((ns, End(e))) => {
335335
assert_eq!(ns, Bound(Namespace(b"urn:example:i")));
336336
assert_eq!(e.name(), QName(b"e"));
337-
},
337+
}
338338
e => panic!("Expected End event (</inner>), got {:?}", e),
339339
}
340340
// </outer>
341341
match r.read_resolved_event() {
342342
Ok((ns, End(e))) => {
343343
assert_eq!(ns, Bound(Namespace(b"urn:example:o")));
344344
assert_eq!(e.name(), QName(b"e"));
345-
},
345+
}
346346
e => panic!("Expected End event (</outer>), got {:?}", e),
347347
}
348348
}

tests/test.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ fn test_attributes_empty() {
4848
}))
4949
);
5050
assert_eq!(attrs.next(), None);
51-
},
51+
}
5252
e => panic!("Expecting Empty event, got {:?}", e),
5353
}
5454
}
@@ -70,7 +70,7 @@ fn test_attribute_equal() {
7070
}))
7171
);
7272
assert_eq!(attrs.next(), None);
73-
},
73+
}
7474
e => panic!("Expecting Empty event, got {:?}", e),
7575
}
7676
}
@@ -85,7 +85,7 @@ fn test_comment_starting_with_gt() {
8585
Ok(Comment(e)) => {
8686
assert_eq!(e.as_ref(), b">");
8787
break;
88-
},
88+
}
8989
Ok(Eof) => panic!("Expecting Comment"),
9090
_ => (),
9191
}
@@ -181,7 +181,7 @@ fn test_issue299() -> Result<(), Error> {
181181
"mismatch att count on '{:?}'",
182182
reader.decoder().decode(e.name().as_ref())
183183
);
184-
},
184+
}
185185
Eof => break,
186186
_ => (),
187187
}

0 commit comments

Comments
 (0)