text
text copied to clipboard
Add valid functions
-- check invariants
valid :: Text -> Bool
For strict text it would check that array is big enough to have offset+length, and that the slice is valid utf8.
For lazy text it would check the above, and chunk invariants.
These functions would be very useful (in writing tests) when one tinkers with internals. (Either in text
itself, or other packages).
There are strictInvariant
and lazyVariant
for lazy text, but they error
. Not entirely, but almost useless in tests.
I'd prefer isValid
, but otherwise I'm in favor of this.
valid
is inspired by the name in containers
. Whatever works.
Also: https://hackage.haskell.org/package/perhaps-0/docs/Data-Perhaps.html is one nice way to combine error messages with Bool
. (That would be great, but not worth dependency, just FYI).