canon_link_generator 0.3.0
canon_link_generator: ^0.3.0 copied to clipboard
Code generator for canon_link — emits the typed sealed Link surface from the link tree.
0.3.0 #
- Require
canon_link ^0.2.0(codec moved to the canon_codec leaf; toUri round-trip validation).
0.2.0 #
- Added the
Link.<route>build chain (LinkNode): a typed step per grammar node — static children are getters, slots are.call(value), and.toUri()exists only on resolving nodes. Query/fragment ride.query(<Node>Query); a required query param removes the bare.toUri().
0.1.2 #
- Path slot fields are named after the preceding segment (
user/*→user), falling back to the codec name. - A codec's
(#name)overrides the field name (single slots) or the variant class names (union slots). - Semantic codecs (
uuid,username) name the field intrinsically, beating the segment; primitives still defer to it.
0.1.1 #
- Automated publishing via GitHub Actions.
0.1.0 #
- Initial generator: reads the
@linkstree and emits the typed surface. - Sealed
Linkbase withtoUri(); one class per resolving endpoint with typed slot/query/fragment fields. parseLink(Uri)backed by the runtime matcher, switching on the route template.- Covers static segs, single slots (string/uuid/int/double/date/enum), nested
routes, the
nullendpoint marker, query flag/value/list, fragments, andallOf/oneOf(flattened to nullable members; constraints enforced at parse). - Union slots (
slots) are rejected pending typed sealed-variant generation.