typewise
Typewise structured sorting for arbirarily complex data structures. This package defines and implements the collation used by the bytewise encoding library.
NOTE: the core typewise sorting functionality has been completely rewritten and moved to typewise-core. This library extends the data structures and comparators available to support more exotic types like ordered maps and sets, and shortlex-ordered tuples and records.
Type system
In order to properly express the rules for sorting and equality for a wide range of structures typewise
defines a simple type system for controlling these properties across a range of data structures.
A typewise
type profile can be provide when creating a bytewise codec to control encoding and decoding behavior for specific types. Types may also contain high and low sentinal values that can be used to create range
types which may be impossible be instantiate directly as instances.
For example, dates have no valid infinatary instances, but something analogous to the "minimum" and "maximum" dates is a useful construct for defining date intervals.
Efficient compare
For more efficient binary comparison typewise
will try to use the buffertools
library if available.
License
MIT