Commit log

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

Click to expand commit body
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

Click to expand commit body
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

Click to expand commit body
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

Click to expand commit body
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

Click to expand commit body
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

Click to expand commit body
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>`

Click to expand commit body
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

Click to expand commit body
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

Click to expand commit body
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

Click to expand commit body
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

Click to expand commit body
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

Click to expand commit body
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

Click to expand commit body
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

Click to expand commit body
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

Click to expand commit body
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>

Maxime “pep” Buquet created

eae6cb2 xmpp: Update ChangeLog

Click to expand commit body
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>

Maxime “pep” Buquet created

1a45252 tokio-xmpp: Bump version to 4.0

Click to expand commit body
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>

Maxime “pep” Buquet created

6995961 tokio-xmpp: Update ChangeLog

Click to expand commit body
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

Click to expand commit body
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

Click to expand commit body
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

Click to expand commit body
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

Click to expand commit body
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