xmpp-rs-mirror/parsers
Jonas Schäfer 6ef8dbefa3 parsers: use Error type from xso
This is a large change and as such, it needs good motivation. Let me
remind you of the ultimate goal: we want a derive macro which allows us
to FromXml/IntoXml, and that derive macro should be usable from
`xmpp_parsers` and other crates.

For that, any code generated by the derive macro mustn't depend on any
code in the `xmpp_parsers` crate, because you cannot name the crate you
are in portably (`xmpp_parsers::..` wouldn't resolve within
`xmpp_parsers`, and `crate::..` would point at other crates if the macro
was used in other crates).

We also want to interoperate with code already implementing
`TryFrom<Element>` and `Into<Element>` on structs. This ultimately
requires that we have an error type which is shared by the two
implementations and that error type must be declared in the `xso` crate
to be usable by the macros.

Thus, we port the error type over to use the type declared in `xso`.

This changes the structure of the error type greatly; I do not think
that `xso` should have to know about all the different types we are
parsing there and they don't deserve special treatment. Wrapping them in
a `Box<dyn ..>` seems more appropriate.
2024-06-23 09:40:52 +02:00
..
examples Update edition to 2021 2023-12-15 19:40:09 +00:00
src parsers: use Error type from xso 2024-06-23 09:40:52 +02:00
Cargo.toml parsers: add streamable parsing 2024-06-18 16:54:11 +02:00
ChangeLog Add serde feature for xmpp crate 2024-06-05 11:20:33 +02:00
doap.xml Added xep-0264 to doap.xml 2024-02-08 16:07:41 +00:00
LICENSE Rename the xmpp-parsers directory to parsers 2021-10-11 08:24:16 +02:00
README.md xmpp-parsers: Add a README 2022-03-07 12:59:43 +01:00

xmpp-parsers

Whats this?

A crate which provides parsers and serialisers for most XMPP elements, to avoid having to deal with XML manually. It validates its inputs by default, and aims at providing useful errors when a particular XML element was invalid.

What license is it under?

MPL-2.0 or later, see the LICENSE file.