Skip to content

Commit 42f8804

Browse files
committed
Change Attributes::has_nil to accept NamespaceResolver instead of Reader<R>
1 parent f856fe7 commit 42f8804

File tree

3 files changed

+8
-8
lines changed

3 files changed

+8
-8
lines changed

Changelog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
- [#908]: Increase minimal supported `serde` version from 1.0.139 to 1.0.180.
2424
- [#913]: Deprecate `.prefixes()`, `.resolve()`, `.resolve_attribute()`, and `.resolve_element()`
2525
of `NsReader`. Use `.resolver().bindings()` and `.resolver().resolve()` methods instead.
26+
- [#913]: `Attributes::has_nil` now accepts `NamespaceResolver` instead of `Reader<R>`.
2627

2728
[#908]: https://github.com/tafia/quick-xml/pull/908
2829
[#913]: https://github.com/tafia/quick-xml/pull/913

src/de/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3469,7 +3469,7 @@ impl<'i, R: BufRead> XmlRead<'i> for IoReader<R> {
34693469
}
34703470

34713471
fn has_nil_attr(&self, start: &BytesStart) -> bool {
3472-
start.attributes().has_nil(&self.reader)
3472+
start.attributes().has_nil(self.reader.resolver())
34733473
}
34743474
}
34753475

@@ -3537,7 +3537,7 @@ impl<'de> XmlRead<'de> for SliceReader<'de> {
35373537
}
35383538

35393539
fn has_nil_attr(&self, start: &BytesStart) -> bool {
3540-
start.attributes().has_nil(&self.reader)
3540+
start.attributes().has_nil(self.reader.resolver())
35413541
}
35423542
}
35433543

src/events/attributes.rs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55
use crate::encoding::Decoder;
66
use crate::errors::Result as XmlResult;
77
use crate::escape::{escape, resolve_predefined_entity, unescape_with};
8-
use crate::name::{LocalName, Namespace, QName};
9-
use crate::reader::NsReader;
8+
use crate::name::{LocalName, Namespace, NamespaceResolver, QName};
109
use crate::utils::{is_whitespace, Bytes};
1110

1211
use std::fmt::{self, Debug, Display, Formatter};
@@ -367,7 +366,7 @@ impl<'a> Attributes<'a> {
367366
/// e => panic!("Unexpected event {:?}", e),
368367
/// };
369368
/// assert_eq!(
370-
/// (event.name(), event.attributes().has_nil(&$reader)),
369+
/// (event.name(), event.attributes().has_nil($reader.resolver())),
371370
/// (QName($name.as_bytes()), $value),
372371
/// );
373372
/// };
@@ -377,7 +376,7 @@ impl<'a> Attributes<'a> {
377376
/// Event::Start(e) => e,
378377
/// e => panic!("Unexpected event {:?}", e),
379378
/// };
380-
/// assert_eq!(root.attributes().has_nil(&reader), false);
379+
/// assert_eq!(root.attributes().has_nil(reader.resolver()), false);
381380
///
382381
/// // definitely true
383382
/// check!(reader, "true", true);
@@ -394,12 +393,12 @@ impl<'a> Attributes<'a> {
394393
/// ```
395394
///
396395
/// [`xsi:nil`]: https://www.w3.org/TR/xmlschema-1/#xsi_nil
397-
pub fn has_nil<R>(&mut self, reader: &NsReader<R>) -> bool {
396+
pub fn has_nil(&mut self, resolver: &NamespaceResolver) -> bool {
398397
use crate::name::ResolveResult::*;
399398

400399
self.any(|attr| {
401400
if let Ok(attr) = attr {
402-
match reader.resolver().resolve_attribute(attr.key) {
401+
match resolver.resolve_attribute(attr.key) {
403402
(
404403
Bound(Namespace(b"http://www.w3.org/2001/XMLSchema-instance")),
405404
LocalName(b"nil"),

0 commit comments

Comments
 (0)