Emmanuel Gil Peyrot
5e9635add3
rustfmt has changed, so update xso so CI is happy again
2024-12-15 16:26:05 +01:00
Jonas Schäfer
7d8ffe45a7
xso: add support for ignoring unknown stuff in extracts
2024-10-26 17:37:32 +00:00
Jonas Schäfer
66233b0150
xso: add support for ignoring unknown children
2024-10-26 17:37:32 +00:00
Jonas Schäfer
290460ba9d
xso: add support for ignoring unknown attributes
2024-10-26 17:37:32 +00:00
Jonas Schäfer
74c81b6a37
xso: add from_reader
2024-10-03 12:57:32 +02:00
Alvaro Parker
2ff89a9e42
fix typos
2024-09-16 18:29:44 -03:00
Jonas Schäfer
efc859abc0
xmlstream: re-introduce syntax-highlit logging of XML stream I/O
2024-09-01 10:02:36 +02:00
Jonas Schäfer
f77c21f0fc
Update to rxml 0.12.0
2024-08-12 16:16:32 +02:00
xmppftw
df106dfbaf
Relative dependencies
2024-08-12 10:39:09 +00:00
Jonas Schäfer
5c990a553c
xso: enable rxml macros when enabling xso_proc
...
We build syn then anyway, so we can build rxml macros, too.
2024-08-12 12:32:12 +02:00
Jonas Schäfer
6b4886857e
xso: offer is_xml_whitespace
function
2024-08-12 12:32:12 +02:00
Jonas Schäfer
1ecb95881c
xso: add support for extracting tuples
2024-08-11 07:58:12 +02:00
Jonas Schäfer
ad2c79cbe7
xso: document some specific trait implementations
2024-08-11 07:45:05 +02:00
Jonas Schäfer
2ff81b3923
xso: add support for fallible parsing and serialisation
2024-08-11 07:45:05 +02:00
Jonas Schäfer
02a928a47c
xso: add some tests
2024-08-11 07:45:05 +02:00
Jonas Schäfer
f1ab857c6e
xso: move helper iterators and builders into separate module
...
This declutters the main `xso` namespace. In addition, if (when) we
introduce more complex generic implementations, we might want to have
tests for these, and those can then live there, too, without making the
main `lib.rs` file gigantic (or moving the tests too far away from the
tested code).
2024-08-11 07:45:05 +02:00
Jonas Schäfer
230b72b052
xso: add ToC to FromXml docs
2024-08-08 15:25:40 +00:00
Jonas Schäfer
fb80bb7532
xso: add support for dynamic enums
2024-08-08 15:25:40 +00:00
Jonas Schäfer
fda4a9ff29
xso: implement transparent structs
2024-08-05 15:13:39 +00:00
Jonas Schäfer
0361b5905b
xso: implement catch-all for unknown elements
2024-08-05 15:33:57 +02:00
xmppftw
2103ef0191
Remove manual doc_cfg feature because we have doc_auto_cfg
2024-08-05 11:14:41 +02:00
xmppftw
fa99c09585
Indicate which feature flag for each module/type
2024-08-05 11:14:41 +02:00
Jonas Schäfer
c7c180feb6
xso: implement support for defaulting extracts
2024-08-04 16:07:14 +02:00
Emmanuel Gil Peyrot
f318dd460d
xso: Use core instead of std wherever possible
2024-08-04 12:41:17 +00:00
Emmanuel Gil Peyrot
aa518fd6c1
xso-proc: add support for extracting attributes into collections
2024-08-04 13:38:52 +02:00
Jonas Schäfer
8732ca9a28
xso: add support for extracting into collections
2024-08-03 18:19:31 +02:00
Jonas Schäfer
df63c2a78f
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).
2024-08-03 15:25:46 +02:00
Jonas Schäfer
2c5f1f096b
xso: implement support for extracting data from child elements
2024-08-03 15:17:30 +02:00
Emmanuel Gil Peyrot
7f5b6fec7f
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.
2024-08-03 13:43:44 +02:00
Jonas Schäfer
93ba2797be
xso-proc: implement support for collections of children
2024-08-03 12:20:04 +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
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
Jonas Schäfer
4845715add
xso: implement support for enums
2024-08-01 15:28:22 +02: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
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
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
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
6b4bdc1641
xso: Bump version to 0.1.1
...
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
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