Change Log
August 22, 2016 ยท View on GitHub
This project adheres to Semantic Versioning. See here for the change log format.
[2.0.5]
- Finish upgrade to Clojure 1.9alpha11.
[2.0.4]
- Update to new suchwow as part of tedious process of upgrading universe to Clojure 1.9alpha11.
[2.0.3]
- BUGFIX: Bumped dependency changed namespaces - was picking up the wrong namespace by accident.
[2.0.2]
- CHANGE: Bump dependencies on suchwow, specter, etc.
[2.0.1]
- CHANGE: Bump dependency (
ordered)
[2.0.0]
- CHANGE: Way better detection/reporting of structures that cannot match the path (truncated and misshapen structures).
- CHANGE:
reject-nilandreject-missinggive better control thanrequired-path(which still exists) - ADD: Strings can now be used in paths. Like keywords, they denote map keywords to follow.
- ADD:
ensure-standard-functionsmakes it easier to write namespaces containing type repos. - ADD: New predicates in
structural-typing.preds. - BREAKING: Removed deprecated functions
required-key,checked, anddescribed-by? - BREAKING: Will no longer reject a top-level nil unless you tell it to.
- BREAKING: Is much better at discovering and describing truncated structures that don't match the type declaration. This could lead to new or different error messages.
- NOTE: an earlier version of 2.0 allowed literals. That was a bad idea.
[1.0.1]
- CHANGE: Use newest version of
suchwowandspecter. - BUGFIX: Should now work when in an uberjar.
- Doc tweak via @devn
[1.0.0]
- ADD: antecedent arguments to
impliescan be condensed type descriptions, not just predicates. - ADD:
all-built-likeand<>all-built-likeadd indexes to their error messages. - ADD: Replaced default protocol error messages with clearer ones.
- FIX:
structural-typingstomped on Specter's handling of keywords. - FIX: swiss-arrows was only a test dependency
[0.14.0]
BREAKING
- You must use
required-pathinstead ofrequired-key.
Added
- Considerably better handling of "impossible" path cases. https://github.com/marick/structural-typing/wiki/Error-Cases
only-keysandexactly-keyspredicatesrequires-mentioned-paths
[0.13.0]
BREAKING
- You must now use
requiresinstead of the vector notation for required paths. - "Forking" paths must be indicated by
through-eachoreach-of, not vectors.
Deprecated
- Use
built-likeinstead ofchecked. - Use
build-like?instead ofdescribed-by?
Added
- When checking a type, you can give "on the fly" condensed type descriptions in addition to type signifiers.
- A keyword
:ain a condensed type description is equivalent to[:a]. impliestostructural-typing.preds.docnamespace.- Predicates can be applied to the whole structure.
originanddescriptionlet you see the definition of a type.- Predicate sequences can include types (convenience)
- You can refer to the paths within a type or map with
paths-of. - You can use integers in paths
{[:a 1 :b] even?}
Changed
- Namespaces reshuffled so all the pieces needed for writing custom predicates
are in one subdirectory,
assist.