Commit Graph

183 Commits

Author SHA1 Message Date
Dirkjan Ochtman 6ea31b721f Remove impl FromXml for &str
This is a bit opinionated, but it helps avoid run-time panics from
doing the simple thing (&str) which is wrong in the face of
escaping strings. The overhead from `Cow` (both in terms of developer
experience and run-time performance) seems limited enough.

This also makes the next part a little easier.
2023-10-25 22:36:20 +02:00
Dirkjan Ochtman 4c04d71224 Add some test helpers 2023-10-25 22:36:20 +02:00
Craig Bester 2595da57ce Decode hexadecimal character references 2023-10-23 12:38:39 +02:00
Craig Bester 366cc05b08 Decode decimal character references 2023-10-23 12:38:39 +02:00
Craig Bester 86784d7794 Reject unterminated ampersand entities 2023-10-23 12:38:39 +02:00
Dirkjan Ochtman c89afc2553 Apply some clippy suggestions 2023-09-15 13:04:46 +02:00
Dirkjan Ochtman 6515ad2b4f Bump versions to 0.3.2 2023-09-15 13:04:46 +02:00
Dirkjan Ochtman c73a852e07 Avoid warnings for non-snake_case variable names 2023-09-15 13:04:46 +02:00
Dirkjan Ochtman cd7a863d90 Explicitly set workspace resolver 2023-09-15 13:04:46 +02:00
Dirkjan Ochtman 82ca8a224e Correctly handle multi-byte characters in string encoding 2023-09-15 13:04:46 +02:00
Dirkjan Ochtman 8be61f6017 Ignore macOS cruft 2023-09-15 13:04:46 +02:00
Dirkjan Ochtman 18396f4aa5 Bump version numbers for new release 2023-03-22 13:10:20 +01:00
Dirkjan Ochtman 27b39b6125 Refer to README from Cargo metadata 2023-03-22 13:10:20 +01:00
Dirkjan Ochtman 083cd567a1 Upgrade to syn 2 2023-03-21 15:28:10 +01:00
Dirkjan Ochtman ff00c96ac9 Bump version to 0.3 for semver-incompatible change 2023-03-03 13:17:41 +01:00
Dirkjan Ochtman 5f6091528f Implement ToXml for str instead of &str 2023-03-03 13:17:41 +01:00
Dirkjan Ochtman 3cfd2e4706 Initial version of README 2023-03-02 13:50:08 +01:00
Dirkjan Ochtman a47e90038b Bump version to 0.2 2023-02-28 17:29:59 +01:00
Dirkjan Ochtman 5058699765 Give inline accumulator type the same visibility as the target 2023-02-28 17:12:31 +01:00
Dirkjan Ochtman f51e6ae063 Fix use of lifetimes in fields of transparent structs 2023-02-28 17:12:31 +01:00
Dirkjan Ochtman a5795b9b2d Add support for Cow<'_, [T]> 2023-02-28 17:06:49 +01:00
Dirkjan Ochtman 2e7a48a212 Add basic Cargo metadata 2023-02-27 10:53:34 +01:00
Dirkjan Ochtman 8cbb29b388 Avoid usage of bool::then_some() 2023-02-27 10:35:06 +01:00
Dirkjan Ochtman 8a958342d6 Check MSRV in CI 2023-02-27 10:35:06 +01:00
Dirkjan Ochtman 8c618ada79 Ignore attributes when looking for scalar values 2023-02-24 17:33:33 +01:00
Dirkjan Ochtman 8c2964b318 Improve support for raw identifier field names 2023-02-24 17:33:33 +01:00
Dirkjan Ochtman 6c4cd8bd55 Add test for incorrectly nested elements with transparent 2023-02-24 17:33:33 +01:00
Dirkjan Ochtman 786f035f76 Implement transparent mode for deserialization 2023-02-24 17:33:33 +01:00
Dirkjan Ochtman c983e10a88 Provide field context to Deserializer implementations
Also reorders deserialize() arguments.
2023-02-24 17:33:33 +01:00
Dirkjan Ochtman 7a2e6ac735 Use associated accumulator type to deserialize into 2023-02-24 17:33:33 +01:00
Dirkjan Ochtman be7902925e Implement transparent mode for serialization 2023-02-24 17:33:33 +01:00
Dirkjan Ochtman b276ee173f Replace decode() function with an explicit state machine 2023-02-23 13:14:27 +01:00
Dirkjan Ochtman 93d7c3d572 Add benchmarks for string decoding 2023-02-23 13:14:27 +01:00
Dirkjan Ochtman 1e5525c9cf Check character boundaries before comparing string slices 2023-02-23 13:14:27 +01:00
Dirkjan Ochtman 7e05d35ba6 Fix clippy lints 2023-02-21 20:35:39 +01:00
Dirkjan Ochtman 60898cdf16 Improve error message on unexpected root element 2023-02-21 20:35:39 +01:00
Dirkjan Ochtman 88c52e98d2 Don't error on ignored (direct) scalar nodes 2022-12-13 16:52:53 +01:00
Dirkjan Ochtman aa45a74bb4 Improve error for unexpected nodes 2022-12-13 16:52:53 +01:00
Dirkjan Ochtman e186684824 Skip None attributes 2022-12-13 16:52:53 +01:00
Dirkjan Ochtman 958790be0b Rename option-vec test to option 2022-12-13 16:52:53 +01:00
Dirkjan Ochtman 5eac914cb7 Add public helper functions for custom implementations 2022-12-13 16:52:53 +01:00
Dirkjan Ochtman 682f42aacc Better errors for missing values 2022-12-13 16:52:53 +01:00
Dirkjan Ochtman a1d7d826f8 Stop eagerly checking for missing values 2022-12-13 16:52:53 +01:00
Dirkjan Ochtman 99dab24219 Add impls for chrono::NaiveDate 2022-12-13 16:52:53 +01:00
Dirkjan Ochtman 0bfd37a9d7 Fully qualify calls to FromXml trait methods 2022-12-13 16:52:53 +01:00
Dirkjan Ochtman f4fb07fca6 Improve error reporting, allow 0/1 as bool values 2022-12-13 16:52:53 +01:00
Dirkjan Ochtman fbe513ab5a Add ToXml impl for slices 2022-12-13 16:52:53 +01:00
Dirkjan Ochtman 4ad194fc1f Switch from wrapped enums to forward enums 2022-12-13 16:52:53 +01:00
Dirkjan Ochtman 0a323ba302 Simplify FromXml::KIND const 2022-12-13 16:52:53 +01:00
Dirkjan Ochtman 4eafa193bd Remove unused ToXml::KIND const 2022-12-13 16:52:53 +01:00