possibly alternatives and similar packages
Based on the "Data" category.
Alternatively, view possibly alternatives based on common mentions on social networks and blogs.
-
streaming
An optimized general monad transformer for streaming applications, with a simple prelude of functions
InfluxDB - Purpose built for real-time analytics at any scale.
Do you think we are missing an alternative of possibly or a related project?
README
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
the following pattern can be used without any language extensions:
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
With the DeriveAnyClass
language extension you can list EnumText
in the
deriving
clause, and with DerivingVia
(available from GHC 8.6.1) you can
derive via
UsingEnumText
as follows:
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DerivingVia #-}
import Fmt
import Text.Enum.Text
data Foo = FOO_bar | FOO_bar_baz
deriving (Bounded,Enum,EnumText,Eq,Ord,Show)
deriving (Buildable,TextParsable) via UsingEnumText Foo
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
.