Commit Graph

131 Commits

Author SHA1 Message Date
Dirkjan Ochtman 894da25f8b Add support for unnamed fields 2022-12-13 16:52:53 +01:00
Dirkjan Ochtman 69eca9c2a5 Improve error reporting for missing values 2022-12-13 16:52:53 +01:00
Dirkjan Ochtman cd7e3b4224 Simplify named field handling code 2022-12-13 16:52:53 +01:00
Dirkjan Ochtman c15a0a985c Enable support for scalar Vec elements 2022-11-25 21:47:25 -08:00
Dirkjan Ochtman 526414cd4b Refactor macros crate 2022-11-25 21:47:25 -08:00
Dirkjan Ochtman aace036ea9 Improve support for Vec fields 2022-11-25 21:47:25 -08:00
Dirkjan Ochtman 1e3ae38b25 Implement matches() method on Kind 2022-11-25 21:47:25 -08:00
Dirkjan Ochtman 32426d77ba Report kind of missing value 2022-11-25 21:47:25 -08:00
Dirkjan Ochtman eb2cfd59f9 Improve error reporting 2022-11-25 21:47:25 -08:00
Dirkjan Ochtman f6e22b3e31 Add support for serialize_with attribute 2022-11-25 21:47:25 -08:00
Dirkjan Ochtman 61df3a7835 Sanitize macro unit tests 2022-11-23 12:23:51 -08:00
Dirkjan Ochtman 0be0b6cc45 Implement support for wrapped enum mode 2022-11-23 12:23:51 -08:00
Dirkjan Ochtman 1190c5c345 Allow Kind to be variant over lifetime 2022-11-23 12:23:51 -08:00
Dirkjan Ochtman 433b0197bb Fix formatting 2022-11-23 12:23:51 -08:00
Dirkjan Ochtman a4f35e5daa Generalize scalar to enum mode 2022-11-23 12:23:51 -08:00
Dirkjan Ochtman 055a654a3d Add support for generic type arguments 2022-11-22 05:50:31 +01:00
Dirkjan Ochtman 413ec05c52 Avoid consts for deserialization field recognition 2022-11-22 05:50:31 +01:00
Dirkjan Ochtman 0be3c92d27 Fix formatting 2022-11-22 05:50:31 +01:00
rsdy 4d627b514a Use field name as tag for `Vec` serialization 2022-10-03 11:23:07 +02:00
rsdy 44f8a2cc6d
Reduce code redundancy (#28) 2022-09-27 18:23:28 +02:00
rsdy 4a61982792 Add enum integration test and fix ser/de logic 2022-09-27 14:03:09 +02:00
rsdy 5890676710 Implement better error reporting using spans of token subtrees 2022-09-26 15:09:06 +02:00
rsdy 23ac36b559 Review follow-ups 2022-09-26 14:15:00 +02:00
rsdy 0d29741b6f Use string literals instead of idents for `rename_all` 2022-09-26 14:15:00 +02:00
rsdy 92dc3c8e73 Clippy lint error 2022-09-26 14:15:00 +02:00
rsdy 7cf93d15eb Enable rename_all attribute on fields and structs 2022-09-26 14:15:00 +02:00
rsdy f017331a69 Add serde renamer 2022-09-26 14:15:00 +02:00
rsdy 1a6be5e46f Add scalar enum management 2022-09-22 15:04:48 +02:00
rsdy cfd5d48841 Extract struct handling for ser/de macros 2022-09-22 15:04:48 +02:00
Dirkjan Ochtman fb7570056d Add support for rename annotations 2022-09-07 22:35:36 +02:00
Dirkjan Ochtman f64634155e Fix support for attributes with no default namespace fallback 2022-09-07 22:35:36 +02:00
Dirkjan Ochtman b30859929b Mandate that attribute namespaces are valid prefixes 2022-09-07 21:38:44 +02:00
Dirkjan Ochtman 570cdc81a5 Fix prefixes on close tags 2022-09-07 21:38:44 +02:00
Dirkjan Ochtman 7d241959d8 Centralize serializer prefix logic in one place 2022-09-07 13:06:44 +02:00
Dirkjan Ochtman 110605ba99 Handle namespaces in serializer in a more principled way 2022-09-07 13:06:44 +02:00
Dirkjan Ochtman 6238ed87c5 Turn serializer API into a proper abstraction 2022-09-07 13:06:44 +02:00
Dirkjan Ochtman c8cc5f5a48 Simplify output token stream for ToXml macro 2022-09-07 13:06:44 +02:00
Dirkjan Ochtman cd37e306ad Rename fields to raw keywords 2022-09-07 13:06:44 +02:00
Dirkjan Ochtman 674039a791 Simplify deserializer macro setup 2022-09-07 13:06:44 +02:00
Dirkjan Ochtman 01c896a9b2 Remove indirection through Visitor 2022-09-07 13:06:44 +02:00
Dirkjan Ochtman 4b0d5a7698 Simplify deserializer token stream 2022-09-07 13:06:44 +02:00
Dirkjan Ochtman 6c0cb83189 Use error variant for field duplicates 2022-09-07 13:06:44 +02:00
Dirkjan Ochtman ebc29b5761 Rename types and variables to better reflect contents 2022-09-07 13:06:44 +02:00
Dirkjan Ochtman ebb6ebb52c Move types to better scoped modules 2022-09-07 13:06:44 +02:00
Dirkjan Ochtman 685189f00d Allow paths as namespace values 2022-09-07 13:06:44 +02:00
Dirkjan Ochtman 11cca274b2 Separate Context out of Deserializer 2022-09-07 13:06:44 +02:00
Dirkjan Ochtman 859df7ae24 No need to pass visitor instance to methods 2022-09-07 13:06:44 +02:00
Dirkjan Ochtman 000b47628b Use split_for_impl() to improve generics handling 2022-09-07 13:06:44 +02:00
Dirkjan Ochtman afdbf2dc45 Move serialization macro into module 2022-09-07 13:06:44 +02:00
Dirkjan Ochtman 9577aace57 Move user-facing serialization interface out of trait 2022-09-07 13:06:44 +02:00
Dirkjan Ochtman 921e094925 Use Id type to make namespaces explicit part of node identity 2022-09-07 13:06:44 +02:00
Dirkjan Ochtman f42f9fd811 Introduce Node layer to gain full access to parsed element 2022-09-07 13:06:44 +02:00
Dirkjan Ochtman 611db8335e Derive Debug for more types 2022-09-07 13:06:44 +02:00
Dirkjan Ochtman 25089014fb Rename namespace to ns in attributes
This more closely mimics the way xmlns gets used in XML in
addition to being more concise.
2022-09-07 13:06:44 +02:00
Dirkjan Ochtman dee065cd9a Refactor how attributes are parsed 2022-09-01 17:41:33 +02:00
Dirkjan Ochtman bebeba8d72 Clarify FromXml identity const 2022-09-01 17:41:33 +02:00
Dirkjan Ochtman 9cfee92d03 Move serializer code into ser module 2022-09-01 17:41:33 +02:00
Dirkjan Ochtman f7bbc00172 Move deserializer code into de module 2022-09-01 17:41:33 +02:00
Dirkjan Ochtman c04c277b49 Rename se module to ser 2022-09-01 17:41:33 +02:00
Dirkjan Ochtman 4563ec0db6 Use &'static str in TagName 2022-09-01 17:41:33 +02:00
Dirkjan Ochtman 14746d9854 Inline enum matching functions 2022-09-01 17:41:33 +02:00
Dirkjan Ochtman e03a6ea087 Rename get_namespaces() to namespaces() 2022-09-01 17:41:33 +02:00
Dirkjan Ochtman d623fa32ab Move namespace comparison into Deserializer method 2022-09-01 17:41:33 +02:00
Dirkjan Ochtman c6a6e707a4 Fix spelling errors 2022-09-01 17:41:33 +02:00
Dirkjan Ochtman c62bf5632d Simplify trait bound declarations 2022-09-01 17:41:33 +02:00
Dirkjan Ochtman 891fc81e9e Remove debugging cruft 2022-09-01 17:41:33 +02:00
choinskib ebd913f603
Deserialize scalars (#14)
Co-authored-by: Dirkjan Ochtman <dirkjan@ochtman.nl>
2022-09-01 13:28:40 +02:00
choinskib c553b22310
Serializer scalars (#15) 2022-09-01 09:24:18 +02:00
choinskib 2a9901bc84
Serializer namespaces and attributes (#13) 2022-08-31 17:03:01 +02:00
choinskib fcf20aa507
Namespaces fixes - deserializer (#10) 2022-08-25 13:16:19 +02:00
choinskib ba40445c5e
Simple deserializer (#7) 2022-08-23 13:34:25 +02:00
Bartlomiej Choinski b0e09962bd serializer changes extractet from simple-deserializer branch 2022-08-12 17:46:07 +02:00
choinskib 3e9f978846
Serialization of custom fields (#6) 2022-08-03 13:19:13 +02:00
choinskib afc39e276d
Handling namespaces attributes in fields (#4) 2022-07-04 14:33:54 +02:00
Dirkjan Ochtman 49212976a2 Inline get_meta_items() 2022-06-13 11:47:34 +02:00
Dirkjan Ochtman df244e89b6 Avoid unnecessary allocation 2022-06-13 11:47:34 +02:00
Bartlomiej Choinski 1d9081b07a Default namespace working version 2022-06-13 11:47:34 +02:00
Bartlomiej Choinski 99a7d561e0 Implement serialization for structs with named fields 2022-06-13 11:10:26 +02:00
Dirkjan Ochtman 6cde0d79e4 Add licenses 2022-06-09 10:52:30 +02:00
Dirkjan Ochtman b5b5d376c2 Passing extended first test 2022-05-13 18:26:56 +02:00
Dirkjan Ochtman 6dd096123d Passing first test 2022-04-29 18:01:35 +02:00