Commit Graph

349 Commits

Author SHA1 Message Date
Jonas Platte
c455f12d23
Drop unnecessary qualification of String outside of generated code 2020-12-17 17:50:16 +01:00
Jonas Platte
d3ee4112e3
Clean up visitor code generation 2020-12-17 17:50:16 +01:00
Jonas Platte
12ddcdbc87
Use absolute paths in generated code
With this, the derives should work with most of the crates and types
the generated code refers to being aliased.

Notably, methods are still mostly invoked using regular method syntax
so those coming from trait could still be aliased by outside code.
2020-12-17 17:50:16 +01:00
Jonas Platte
52fb60ec8b
Remove most extern crate statements from yaserde_derive
yaserde_derive is an edition 2018 crate, so these are not necessary.
2020-12-17 17:48:26 +01:00
Jonas Platte
c98845fc42
Remove redundant lib name from yaserde_derive/Cargo.toml 2020-12-02 15:48:10 +01:00
Marc-Antoine ARNAUD
15576efeb3
Merge pull request #93 from marcelbuesing/fix-keyword-in-label
Avoid breaking keywords in labels.
2020-10-12 09:03:07 +02:00
marcelbuesing
798455faa8
Avoid breaking keywords in labels.
Keywords such as `ref` previously lead to labels such as `__#ref__value`.
This should be `__ref__value`.
2020-10-07 10:13:52 +02:00
Marc-Antoine Arnaud
6e2930e2df bump to 0.4.3 2020-08-26 23:33:12 +02:00
Marc-Antoine Arnaud
fc5625a5e4 parse bool as defined in xs:boolean 2020-08-26 23:32:24 +02:00
Marc-Antoine Arnaud
dc558a73e4 publish 0.4.2 2020-08-05 10:56:35 +02:00
Marc-Antoine ARNAUD
c25d8d420f
Merge pull request #88 from marcelbuesing/master
Enforce std String in macros to avoid collisions
2020-08-05 10:38:16 +02:00
marcelbuesing
701b92a2a4
Enforce std String in macros to avoid collisions 2020-08-03 20:28:53 +02:00
Marc-Antoine ARNAUD
b7545504ac
Merge pull request #86 from horacimacias/master
Rename vector fields in struct
2020-08-03 11:27:57 +02:00
Horaci Macias
974ff0ee1a formatted 2020-07-21 09:37:29 +02:00
Horaci Macias
c2d9a9fb64 Before formatting 2020-07-21 09:36:55 +02:00
Horaci Macias
c76ad9fe59 Working on flatten 2020-07-21 09:11:59 +02:00
Horaci Macias
10e02eb555 Trying to fix tabs 2020-07-20 17:35:07 +02:00
Horaci Macias
b1d11f4e3a Trying to address https://github.com/media-io/yaserde/issues/63 2020-07-20 17:16:00 +02:00
Marc-Antoine ARNAUD
460c8320c6
Merge pull request #83 from scottlamb/pr-debugging-and-cleanups
debugging and cleanups
2020-07-14 20:39:47 +02:00
Scott Lamb
8a1e1e2e16 minor cleanup of element skipping
* "skipped" is unnecessary: it's always false at depth == 0,
  so its one use in "if depth == 0 && !skipped" can be removed.
* the element doesn't need a binding, and shadowing "named_element"
  confused me.
* remove old commented-out path that errored on unknown elements
2020-06-20 06:27:19 -07:00
Scott Lamb
c889461eef improve logging in deserialize path and tests
* Log the depth of elements as they're fetched
* Log the starting depth of structs/enums and their Rust symbol names
  (not just XML element names, which may differ significantly)
* Log every element in the struct/enum match loop at trace level.
* Log file/line numbers at a few key points in the tests.
  This is helpful in finding failures happen in some of the longer
  tests.

This logging helps me understand the data flow as I play with changes
for #76.
2020-06-20 06:27:19 -07:00
Scott Lamb
cb272454a4 init logging from yaserde crate's tests
As described here:
https://docs.rs/env_logger/0.7.1/env_logger/#capturing-logs-in-tests

This boilerplate means that "RUST_LOG=trace cargo test" does the right
thing:

* logs actually show up
* logs are separated by test, even when tests are run in parallel
2020-06-20 06:26:22 -07:00
Scott Lamb
0660a9e855 ignore a couple extra "target" directories
Crates within a workspace aren't supposed to have their own "target"
directories. But yet these directories appear when I edit files with vim
and YouCompleteMe. Ignoring them makes tools like "rg" more pleasant to
use.
2020-06-19 21:58:05 -07:00
Marc-Antoine Arnaud
9a2aec0abe update cache strategy on Travis, add rust 1.43 and 1.44 2020-06-08 10:54:25 +02:00
Marc-Antoine Arnaud
4976fc3aa0 bump to 0.4.1 2020-06-08 10:45:58 +02:00
Marc-Antoine Arnaud
ad167a74a7 use unwrap_or_default 2020-06-08 10:45:18 +02:00
Marc-Antoine Arnaud
ae8021f79a remove lifetime parameter on serializer 2020-06-08 10:28:36 +02:00
Marc-Antoine Arnaud
c3aaeaa6f6 fix intern dependency 2020-06-08 09:33:55 +02:00
Marc-Antoine Arnaud
427d623c1f bump to 0.4.0 2020-06-08 09:30:08 +02:00
Marc-Antoine ARNAUD
23098184f2
Merge pull request #82 from media-io/flatten_attribute
support flatten attributes
2020-06-07 17:11:18 +02:00
Marc-Antoine Arnaud
7569408245 support flatten attributes 2020-06-07 15:16:46 +02:00
Marc-Antoine ARNAUD
429c2db493
Merge pull request #79 from Aaron1011/fix/type-group
Handle nested `syn::Type:::Group`
2020-06-01 17:08:40 +02:00
Marc-Antoine Arnaud
340e75cfa9
add module unit test 2020-06-01 10:38:09 -04:00
Aaron Hill
6732d8b38a
Handle nested syn::Type:::Group
Currently, rustc does not pass the exact original TokenStream to
proc-macros in several cases. This has many undesirable effects, such as
losing correct location information in error message.
See rust-lang/rust#43081 for more details

In the future, rustc will begin passing the correct TokenStream to
proc-macros. As a result, `syn` may wrap a type in one or more
`syn::Type::Group`s (if the proc-macro input came from a `macro_rules!` expansion).

I've determined that this can cause `yaserde-derive` to fail to match
a `Type::Path`. This PR should properly handle nested groups, allowing
your crate to work with both old and new input.

If you have any questions, feel free to ask me. See rust-lang/rust#72622
for more details.
2020-05-31 00:00:06 -04:00
Marc-Antoine ARNAUD
06dfc427fe
Merge pull request #78 from media-io/fix_visitor_label
Fix visitor label
2020-05-20 19:03:12 +02:00
Marc-Antoine Arnaud
10f2be69be format code 2020-05-20 17:38:31 +02:00
Marc-Antoine Arnaud
0d2058ddb4 use heck to force camel case format on Visitor ident
issue #77
2020-05-20 16:58:55 +02:00
Marc-Antoine Arnaud
751f4715a8 bump to 0.3.17 2020-05-08 15:04:51 +02:00
Marc-Antoine Arnaud
f3c42a4d9e improve library 2020-05-08 14:42:43 +02:00
Marc-Antoine Arnaud
2726de5c56 bump to 0.3.16 2020-04-29 20:03:37 +02:00
Marc-Antoine ARNAUD
8e13c80fec
Merge pull request #75 from media-io/refactor_code
fix namespace check on deserilization of enum
2020-04-29 20:02:08 +02:00
Marc-Antoine Arnaud
dfaa69071d fix namespace check on deserilization of enum 2020-04-29 19:13:32 +02:00
Marc-Antoine ARNAUD
e3eee45577
Merge pull request #73 from media-io/refactor_code
Restructure unit tests
2020-04-22 20:22:45 +02:00
Marc-Antoine Arnaud
e2a2779f71 format code 2020-04-22 19:05:13 +02:00
Marc-Antoine Arnaud
975baabd76 remove root attribute, use rename 2020-04-22 19:04:43 +02:00
Marc-Antoine Arnaud
0872461c41 continue to refactor code using common Field structure 2020-04-22 18:18:11 +02:00
Marc-Antoine Arnaud
f69d5e75b3 implement common default skip content serializer 2020-04-21 18:01:03 +02:00
Marc-Antoine Arnaud
04ddaa29dc restructure code 2020-04-21 15:02:34 +02:00
Marc-Antoine Arnaud
ccf353ce6b restructure unit tests to check serialization and deserialisation on same features 2020-04-21 11:16:03 +02:00
Marc-Antoine Arnaud
0fd06404da start to restructure unit tests 2020-04-20 22:23:12 +02:00