| Copyright | (C) CSIRO 2017-2018 |
|---|---|
| License | BSD3 |
| Maintainer | George Wilson <george.wilson@data61.csiro.au> |
| Stability | experimental |
| Portability | non-portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Data.Sv.Encode.Type
Description
The core type for encoding
Synopsis
- newtype Encode a = Encode {
- getEncode :: EncodeOptions -> a -> Seq Builder
- newtype NameEncode a = NameEncode {}
Documentation
An Encode converts its argument into one or more textual fields, to be
written out as CSV.
It is Semigroup, Monoid, Contravariant, Divisible, and Decidable,
allowing for composition of these values to build bigger Encodes
from smaller ones.
Constructors
| Encode | |
Fields
| |
newtype NameEncode a Source #
A NameEncode is an Encode with an attached column name.
It is Semigroup, Monoid, Contravariant, and Divisible, allowing
for composition of these values to build bigger NameEncodes
from smaller ones.
Notably, NameEncode is not Decidable, since taking the sum of column
names does not make sense.
Instances
| Contravariant NameEncode Source # | |
Defined in Data.Sv.Encode.Type Methods contramap :: (a -> b) -> NameEncode b -> NameEncode a # (>$) :: b -> NameEncode b -> NameEncode a # | |
| Divisible NameEncode Source # | |
Defined in Data.Sv.Encode.Type Methods divide :: (a -> (b, c)) -> NameEncode b -> NameEncode c -> NameEncode a # conquer :: NameEncode a # | |
| Semigroup (NameEncode a) Source # | |
Defined in Data.Sv.Encode.Type Methods (<>) :: NameEncode a -> NameEncode a -> NameEncode a # sconcat :: NonEmpty (NameEncode a) -> NameEncode a # stimes :: Integral b => b -> NameEncode a -> NameEncode a # | |
| Monoid (NameEncode a) Source # | |
Defined in Data.Sv.Encode.Type Methods mempty :: NameEncode a # mappend :: NameEncode a -> NameEncode a -> NameEncode a # mconcat :: [NameEncode a] -> NameEncode a # | |