enum-text

A text rendering and parsing toolkit for enumerated types

https://github.com/cdornan/enum-text#readme

Version on this page:0.5.0.0
LTS Haskell 22.14:0.5.3.0
Stackage Nightly 2024-03-29:0.5.3.0
Latest on Hackage:0.5.3.0

See all snapshots enum-text appears in

BSD-3-Clause licensed by Chris Dornan
Maintained by [email protected]
This version can be pinned in stack with:enum-text-0.5.0.0@sha256:bfdc672bcffbe563425a6e41045e422078a911fc5d6906ed53c9bff5de13c57c,1270

Module documentation for 0.5.0.0

  • Text
    • Text.Enum
      • Text.Enum.Text

enum-text

A simple toolkit for rendering enumerated types into Text Builder (used by the fmt package) and parsing them back again into Text with the provided TextParsable type class.

To get the Buildable and TextParsable instances for an enumerated data type use the following pattern:

import Fmt
import Text.Enum.Text

data Foo = FOO_bar | FOO_bar_baz
  deriving (Bounded,Enum,Eq,Ord,Show)

instance EnumText     Foo
instance Buildable    Foo where build     = buildEnumText
instance TextParsable Foo where parseText = parseEnumText

This will use the default configuration for generating the text of each enumeration from the derived show text, namely:

  • removing the prefix upto and including the first underscore (_);
  • converting each subsequent underscore (_) into a dash (-).

See the Haddocks for details on how to override this default configuration for any given enumeration type.

Functions for rendering text, generating and parsing UTF-8 encoded ByteStrings (suitable for cassava) and Hashable functions are also provided EnumText.

Changes

0.5.0.0

  • add basic TextParsable instances and toolkit functions

0.1.0.0

  • first release