Commit graph

2177 commits

Author SHA1 Message Date
Jonas Schäfer
93ba2797be xso-proc: implement support for collections of children 2024-08-03 12:20:04 +02:00
Jonas Schäfer
5c3ed1435f parsers: delete now-unused generate_element_enum macro 2024-08-03 12:19:42 +02:00
Jonas Schäfer
6afd0ef52f parsers: port enums over to derive macros 2024-08-03 12:19:42 +02:00
Jonas Schäfer
c028c3b91a 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.
2024-08-03 12:19:28 +02:00
Jonas Schäfer
a20caf839f 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.
2024-08-03 12:14:26 +02:00
Jonas Schäfer
2fe3c0cef2 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.
2024-08-03 12:14:26 +02:00
Jonas Schäfer
271c31c9d4 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.)
2024-08-03 12:14:26 +02:00
xmppftw
b9fc15977b Replace tokio_xmpp::stream_features with parsers 2024-08-02 18:25:32 +00:00
xmppftw
5110d5fa96 Support <stream:features> in parsers 2024-08-02 18:25:32 +00:00
Jonas Schäfer
cf617e4d7e xso-proc: ensure that all meta keys are handled
See inline comments for the rationale.
2024-08-02 07:43:51 +02:00
Jonas Schäfer
4845715add xso: implement support for enums 2024-08-01 15:28:22 +02:00
Jonas Schäfer
3a56b2bb10 xso-proc: introduce trait for StructDef
Can you see it coming?
2024-08-01 15:26:38 +02:00
xmppftw
dc88d1fb29 Fix minidom CHANGELOG.md format 2024-08-01 12:57:27 +00:00
xmppftw
ee3d86ec42 Remove tokio_xmpp::ParseError and tokio_xmpp::starttls::ParseError 2024-08-01 12:55:17 +00:00
Jonas Schäfer
507a3df652 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).
2024-08-01 12:53:20 +00:00
Jonas Schäfer
3089832090 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.
2024-08-01 12:53:20 +00:00
Jonas Schäfer
c90752aa51 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.
2024-08-01 12:53:20 +00:00
xmppftw
eb51b05c13 Reexport tokio_xmpp from xmpp crate 2024-07-31 16:58:30 +00:00
Emmanuel Gil Peyrot
d752d8c8fe xmpp-parsers: Convert Tune to xso
The Tune::new() constructor wasn’t pub before that.
2024-07-31 15:38:10 +00:00
Emmanuel Gil Peyrot
c85bde3d2e xmpp-parsers: Convert MetadataResponse to xso 2024-07-31 15:38:10 +00:00
10acdf1e78 xmpp: Bump version to 0.6.0
Some checks failed
Build / lint (push) Has been cancelled
Build / test-stable (push) Has been cancelled
Build / test-nightly (push) Has been cancelled
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2024-07-28 20:39:15 +02:00
eae6cb2c97 xmpp: Update ChangeLog
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2024-07-28 20:39:15 +02:00
1a452523bd
tokio-xmpp: Bump version to 4.0
Some checks failed
Build / lint (push) Has been cancelled
Build / test-stable (push) Has been cancelled
Build / test-nightly (push) Has been cancelled
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2024-07-28 01:00:01 +02:00
6995961d38 tokio-xmpp: Update ChangeLog
Some checks failed
Build / lint (push) Has been cancelled
Build / test-stable (push) Has been cancelled
Build / test-nightly (push) Has been cancelled
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2024-07-27 19:04:03 +02:00
Jonas Schäfer
819a869ffb parsers: replace some more generate_element! calls with derive macros 2024-07-27 09:39:13 +02:00
Jonas Schäfer
cd9f2033f3 xso: add support for boxed children
This allows building recursive tree structures.
2024-07-27 08:24:25 +02:00
Jonas Schäfer
01336802b4 xso-proc: add support for optional children 2024-07-27 08:24:25 +02:00
Jonas Schäfer
5d284bbd3a parsers: port some elements with children to derive macros 2024-07-26 22:31:42 +02:00
Jonas Schäfer
5bd36eccfc xso-proc: add support for child elements 2024-07-26 22:31:42 +02:00
Jonas Schäfer
1265f4bb67 xso-proc: fix warnings when struct names end on _ 2024-07-26 22:31:41 +02:00
Jonas Schäfer
76cd077490 xso: Bump version to 0.1.2
Some checks failed
Build / lint (push) Has been cancelled
Build / test-stable (push) Has been cancelled
Build / test-nightly (push) Has been cancelled
2024-07-26 18:24:43 +02:00
Jonas Schäfer
951d23cc21 xso: add changelog entry for release 2024-07-26 18:24:12 +02:00
Jonas Schäfer
c40023a65e xso: add feature flag marker to derive macros 2024-07-26 17:11:48 +02:00
Jonas Schäfer
f798c2b5bc 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.
2024-07-26 17:07:32 +02:00
Jonas Schäfer
fce846ae3d 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).
2024-07-25 22:22:55 +02:00
Jonas Schäfer
bf46248eeb xso: implement FromXmlText/AsXmlText for char 2024-07-25 22:22:55 +02:00
Jonas Schäfer
fe61a25cfd 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.
2024-07-25 22:22:55 +02:00
Jonas Schäfer
204c82e6b0 xso: add more doc comments throughout 2024-07-25 22:22:55 +02:00
5b1706a311
tokio-xmpp: Update dependencies
Update tokio_rustls, idna, webpki_roots.

https://github.com/rustls/rustls/releases/tag/v%2F0.22.0
> ConfigBuilder::with_safe_defaults - calls to this can simply be deleted since safe defaults are now implicit.
> OwnedTrustAnchor - use rustls_pki_types::TrustAnchor instead, and replace from_subject_spki_name_constraints with direct assignment to the struct fields.

`RootCertStore::add_trust_anchors` seems to be removed too.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2024-07-25 20:51:20 +02:00
6b4bdc1641
xso: Bump version to 0.1.1
Some checks failed
Build / lint (push) Has been cancelled
Build / test-stable (push) Has been cancelled
Build / test-nightly (push) Has been cancelled
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2024-07-25 18:53:31 +02:00
Emmanuel Gil Peyrot
c0f1aa620e xmpp-parsers: Bump version to 0.21.0 2024-07-25 18:42:18 +02:00
Emmanuel Gil Peyrot
09c5ad5976 xmpp-parsers: Convert jingle_s5b’s Candidate to xso 2024-07-25 18:42:18 +02:00
Emmanuel Gil Peyrot
726801610f xmpp-parsers: Convert ibb to xso 2024-07-25 18:42:18 +02:00
Emmanuel Gil Peyrot
1a7dec6f1e xmpp-parsers: Convert sm’s Enable and Enabled to xso 2024-07-25 18:42:18 +02:00
Emmanuel Gil Peyrot
01a61c6099 xmpp-parsers: Convert pubsub’s Default to xso 2024-07-25 18:42:18 +02:00
Emmanuel Gil Peyrot
5b5df16ac9 xmpp-parsers: Convert jingle_rtp_hdrext to xso 2024-07-25 18:42:18 +02:00
Emmanuel Gil Peyrot
0b92061433 xmpp-parsers: Convert jingle_ibb to xso 2024-07-25 18:42:18 +02:00
Emmanuel Gil Peyrot
2eb6ca2f94 xmpp-parsers: Remove util::text_node_codecs
This codec system was useful for the previous parser style, but we have
converted them all to xso now!
2024-07-25 18:42:18 +02:00
Emmanuel Gil Peyrot
0c9e478994 xmpp-parsers: Convert media_element to xso
The API changed here, URI became Uri to be more in line with the coding
style.

Also we don’t attempt to trim them any more because that was only used
in the examples, and nowhere in the text of the specification did it say
that those had to be trimmed.
2024-07-25 18:42:18 +02:00
Emmanuel Gil Peyrot
2b333ce579 xso: Add an EmptyAsError text codec
As its name implies, this codec emits an error when the parsed string is
empty.
2024-07-25 18:42:18 +02:00