Skip to content
This repository was archived by the owner on Nov 27, 2025. It is now read-only.

Rewrite deserialization on top of facet-solver#52

Merged
fasterthanlime merged 1 commit intomainfrom
streaming
Nov 27, 2025
Merged

Rewrite deserialization on top of facet-solver#52
fasterthanlime merged 1 commit intomainfrom
streaming

Conversation

@fasterthanlime
Copy link
Contributor

… rich diagnostics

- Rebuild deserialization on top of facet-solver, including full #[facet(flatten)]
  support (structs, enums, Option<T>, nested paths, two-pass resolution)
- Buffer and replay values for deferred flatten resolution and custom deserializers
- Port fully to solver-based architecture and drop legacy codepaths
- Rewrite serialization without facet-serialize; add pretty-printing and all enum
  tagging strategies (external, internal, adjacent, untagged)
- Add borrowing support (&str, Cow) and tagged enums
- Introduce rich miette diagnostics with source spans, labels, suggestions,
  and improved error context (type, missing fields, unknown fields)
- Add showcase and error showcase examples with syntax-highlighted Rust & JSON
- Clean up clippy warnings, remove unused code, and shed unnecessary dependencies
- Extensive test additions covering flattening, enums, borrowing, diagnostics,
  edge cases, and regressions
@fasterthanlime fasterthanlime merged commit d6a2cd2 into main Nov 27, 2025
1 of 7 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant