aa518fd
xso-proc: add support for extracting attributes into collections
Emmanuel Gil Peyrot created
aa518fd
xso-proc: add support for extracting attributes into collections
Emmanuel Gil Peyrot created
8732ca9
xso: add support for extracting into collections
Jonas Schäfer created
5590d70
xso-proc: merge extract and normal child code
Jonas Schäfer created
7ab375f
xmpp-parsers: Convert ext disco and Jingle ICE-UDP to xso
Emmanuel Gil Peyrot created
df63c2a
xso: allow omission of namespace and name on extracts
This is a quality-of-life improvement, as it may save lots of typing in the common case (see the diff in parsers).
Jonas Schäfer created
4885584
xmpp-parsers: Convert some more elements to xso
Emmanuel Gil Peyrot created
1e0bccc
parsers: port extracts over to derive macros
Jonas Schäfer created
2c5f1f0
xso: implement support for extracting data from child elements
Jonas Schäfer created
5efaabc
xso-proc: allow constructing a Compound from processed fields
This will come in handy when we implement the ability to extract data from nested children.
Jonas Schäfer created
e0de035
xso-proc: deduplicate parsing of `namespace` / `name` keys
Jonas Schäfer created
6440209
xso: reject duplicate children
This was an oversight. Even though we apparently don't have tests for this anywhere, it is what the old functional macros do.
Jonas Schäfer created
7f5b6fe
xso: Allow any T: FromXmlText + AsXmlText in EmptyAsNone
This text codec was previously implemented only for Option<String>, this extends it to all types implementing those two traits, such as numbers or JIDs.
Emmanuel Gil Peyrot created
2b346c4
parsers: port more things to derive macros
Jonas Schäfer created
93ba279
xso-proc: implement support for collections of children
Jonas Schäfer created
5c3ed14
parsers: delete now-unused generate_element_enum macro
Jonas Schäfer created
6afd0ef
parsers: port enums over to derive macros
Jonas Schäfer created
c028c3b
xso: implement exhaustive enums
These more closely mirror how enums work currently with the macros. Non-exhaustive enums may be useful though and kind of were the natural thing to implement.
Jonas Schäfer created
a20caf8
xso-proc: improve error messages for `codec = ..` parsing hack
Previously, if you put `codec = FixedHex<20>.filtered(..)`, it would cause a confusing "expected `,`" message at the place of the `.`. This code adds a helpful "try adding a `::` before the `<`" message pointing at the `<` in the type path.
Jonas Schäfer created
2fe3c0c
xso-proc: add fancy hack to allow `codec = Foo<Bar>`
We can do this because we know that `x < y` cannot create a `TextCodec<T>` for any `T`. This is because `<` is guaranteed to return a boolean value, and we simply don't implement `TextCodec<T>` on bool.
Jonas Schäfer created
271c31c
xso: use values instead of types for text codecs
This allows stateful or configurable codecs without having to express all configuration in the type name itself. For example, we could have a Base64 type with configurable Base64 engines without having to duplicate the Base64 type itself. (Note that the different engines in the Base64 crate are values, not types.)
Jonas Schäfer created
b9fc159
Replace tokio_xmpp::stream_features with parsers
xmppftw created
5110d5f
Support <stream:features> in parsers
xmppftw created
cf617e4
xso-proc: ensure that all meta keys are handled
See inline comments for the rationale.
Jonas Schäfer created
4845715
xso: implement support for enums
Jonas Schäfer created
3a56b2b
xso-proc: introduce trait for StructDef
Can you see it coming?
Jonas Schäfer created
dc88d1f
Fix minidom CHANGELOG.md format
xmppftw created
ee3d86e
Remove tokio_xmpp::ParseError and tokio_xmpp::starttls::ParseError
xmppftw created
507a3df
xso-proc: remove Span information from generated type names
By removing that, the lint won't trigger for identifiers with trailing underscores (which become then embedded underscores which normally trips the `non_camel_case_types` lint).
Jonas Schäfer created
3089832
xso-proc: remove stripping of trailing `_` from type names
Users can now rename the generated types altogether, which means that we do not need this anymore to avoid lints.
Jonas Schäfer created
c90752a
xso: add support for overriding names of generated types
In 1265f4b, we introduced a change which may cause a conflict of type names when deriving the traits on two different types. While a workaround existed (use `mod`s to isolate the implementation), that is ugly. This commit allows overriding the choice of type names.
Jonas Schäfer created
eb51b05
Reexport tokio_xmpp from xmpp crate
xmppftw created
d752d8c
xmpp-parsers: Convert Tune to xso
The Tune::new() constructor wasn’t pub before that.
Emmanuel Gil Peyrot created
c85bde3
xmpp-parsers: Convert MetadataResponse to xso
Emmanuel Gil Peyrot created
10acdf1
xmpp: Bump version to 0.6.0
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
Maxime “pep” Buquet created
eae6cb2
xmpp: Update ChangeLog
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
Maxime “pep” Buquet created
1a45252
tokio-xmpp: Bump version to 4.0
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
Maxime “pep” Buquet created
6995961
tokio-xmpp: Update ChangeLog
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
Maxime “pep” Buquet created
819a869
parsers: replace some more generate_element! calls with derive macros
Jonas Schäfer created
cd9f203
xso: add support for boxed children
This allows building recursive tree structures.
Jonas Schäfer created
0133680
xso-proc: add support for optional children
Jonas Schäfer created
5d284bb
parsers: port some elements with children to derive macros
Jonas Schäfer created
5bd36ec
xso-proc: add support for child elements
Jonas Schäfer created
1265f4b
xso-proc: fix warnings when struct names end on `_`
Jonas Schäfer created
76cd077
xso: Bump version to 0.1.2
Jonas Schäfer created
951d23c
xso: add changelog entry for release
Jonas Schäfer created
c40023a
xso: add feature flag marker to derive macros
Jonas Schäfer created
f798c2b
xso: ensure that feature-gated things render on docs.rs
How would you learn about them otherwise? This is particularly important for the derive macros (behind the `derive` feature flag). Fixes #133.
Jonas Schäfer created
fce846a
xso: refactor Base64 text codec
This introduces support for `Cow<'_, [u8]>` (which is not needed currently, but still good to have) and generalizes the `Option<T>` implementation so that it doesn't have to be copied for every other type supported to be Base64'd (we may add support for `bytes::Bytes` at some point, for instance).
Jonas Schäfer created
bf46248
xso: implement FromXmlText/AsXmlText for char
Jonas Schäfer created
fe61a25
xso: improve macro for FromXmlText/AsXmlText
Now it's not limited to a single feature gate per type (or even just feature gates: it should now also be possible to add constraints based on OS, for example) anymore.
Jonas Schäfer created