Struct XmlStreamReader

Source
pub struct XmlStreamReader<T> { /* private fields */ }
Expand description

XML stream reader specialized for working with OPC-UA XML.

Implementations§

Source§

impl<T> XmlStreamReader<T>
where T: Read,

Source

pub fn new(reader: T) -> XmlStreamReader<T>

Create a new stream reader with an internal buffer.

Source

pub fn next_event(&mut self) -> Result<Event<'_>, XmlReadError>

Get the next event from the stream.

Source

pub fn skip_value(&mut self) -> Result<(), XmlReadError>

Skip the current value. This should be called after encountering a Start event, and will skip until the corresponding End event is consumed.

Note that this does not check that the document is coherent, just that an equal number of start and end events are consumed.

Source

pub fn consume_as_text(&mut self) -> Result<String, XmlReadError>

Consume the current event, skipping any child elements and returning the combined text content with leading and trailing whitespace removed. Note that if there are multiple text elements they will be concatenated, but whitespace between these will not be removed.

Source

pub fn consume_raw(&mut self) -> Result<Vec<u8>, XmlReadError>

Consume the current element as a raw array of bytes.

Source

pub fn consume_content<R>(&mut self) -> Result<R, XmlReadError>
where R: FromStr, XmlReadError: From<<R as FromStr>::Err>,

Consume the current node as a text value and parse it as the given type.

Trait Implementations§

Source§

impl XmlReadExt for XmlStreamReader<&mut dyn Read>

Source§

fn iter_children_include_empty( &mut self, process: impl FnMut(String, Option<&mut Self>, &Context<'_>) -> EncodingResult<()>, context: &Context<'_>, ) -> EncodingResult<()>

Iterate over children, calling the provided callback for each tag. The callback must consume the tag, unless no reader is provided, in which case the tag is already closed.
Source§

fn iter_children( &mut self, process: impl FnMut(String, &mut Self, &Context<'_>) -> EncodingResult<()>, context: &Context<'_>, ) -> EncodingResult<()>

Iterate over children, calling the provided callback for each tag. The callback must consume the tag.
Source§

fn get_single_child<T>( &mut self, tag: &str, cb: impl FnOnce(&mut Self, &Context<'_>) -> Result<T, Error>, context: &Context<'_>, ) -> EncodingResult<Option<T>>

Call a callback for a single child element. This will consume the current node.
Source§

fn decode_single_child<T: XmlDecodable>( &mut self, tag: &str, context: &Context<'_>, ) -> EncodingResult<Option<T>>

Decode a single child element. This will consume the current node.
Source§

fn get_first_child<T>( &mut self, cb: impl FnOnce(String, &mut Self, &Context<'_>) -> Result<T, Error>, context: &Context<'_>, ) -> EncodingResult<Option<T>>

Call a callback for the first child element, then skip the rest. This will consume the current node.

Auto Trait Implementations§

§

impl<T> Freeze for XmlStreamReader<T>
where T: Freeze,

§

impl<T> RefUnwindSafe for XmlStreamReader<T>
where T: RefUnwindSafe,

§

impl<T> Send for XmlStreamReader<T>
where T: Send,

§

impl<T> Sync for XmlStreamReader<T>
where T: Sync,

§

impl<T> Unpin for XmlStreamReader<T>
where T: Unpin,

§

impl<T> UnwindSafe for XmlStreamReader<T>
where T: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more