canon_link 0.2.0
canon_link: ^0.2.0 copied to clipboard
Type-safe, bidirectional URL codec from a single grammar.
0.2.0 #
- The codec layer moved to the new
canon_codecpackage (re-exported, soCodecand the built-ins are unchanged for consumers). canon_link now layers only the URL structure (NameableCodecnaming, repeated-keylist) on top. toUri()now throws if a value will not round-trip through its codec, instead of silently emitting an unparseable URL.
0.1.2 #
- Codecs carry an optional name:
slot(.uuid(#adId))overrides the generated field name. Battery codecs are nameable; custom codecs opt in viaNameableCodec. - Added the
.usernamecodec (lenient handle: letters, digits,_ . -). - Removed
Domain(canonical:)— output uses the first-declared domain; round-tripping a parsed link keeps its own domain.
0.1.1 #
- Automated publishing via GitHub Actions.
0.1.0 #
- Initial runtime: strict bidirectional URL ↔ Link codec.
Codec<T>with built-ins (string, raw, uuid, integer, number, date, enumValues, list).- Authoring DSL:
tree/Domain/Seg/slot/slots/Query/allOf/oneOf, own vs shared query/fragment,nullendpoint marker. Unmodeled query keys are ignored. LinkMatcher: no-backtrack committed-fallthrough parse + canonical print.