Safe Haskell | None |
---|
- class FromSeries a where
- parseSeries :: Series -> Parser a
- fromSeries :: FromSeries a => Series -> Either String a
- class FromSeriesData a where
- fromSeriesData :: FromSeriesData a => SeriesData -> Either String [a]
- withValues :: (Vector Value -> ValueParser a) -> Vector Column -> Vector Value -> Parser a
- (.:) :: FromValue a => Vector Value -> Column -> ValueParser a
- (.:?) :: FromValue a => Vector Value -> Column -> ValueParser (Maybe a)
- (.!=) :: Parser (Maybe a) -> a -> Parser a
- class FromValue a where
- parseValue :: Value -> Parser a
- fromValue :: FromValue a => Value -> Either String a
- data Parser a
- data ValueParser a
- typeMismatch :: String -> Value -> Parser a
Documentation
class FromSeries a whereSource
A type that can be converted from a Series
.
parseSeries :: Series -> Parser aSource
fromSeries :: FromSeries a => Series -> Either String aSource
Converte a value from a Series
, failing if the types do not match.
class FromSeriesData a whereSource
A type that can be converted from a SeriesData
. A typical implementation
is as follows.
import Control.Applicative ((<$>), (<*>)) import qualified Data.Vector as V data Event = Event Text EventType data EventType = Login | Logout instance FromSeriesData Event where parseSeriesData = withValues $ \values -> Event <$> values .: "user" <*> values .: "type" instance FromValue EventType
fromSeriesData :: FromSeriesData a => SeriesData -> Either String [a]Source
Converte a value from a SeriesData
, failing if the types do not match.
withValues :: (Vector Value -> ValueParser a) -> Vector Column -> Vector Value -> Parser aSource
Helper function to define parseSeriesData
from ValueParser
s.
(.:) :: FromValue a => Vector Value -> Column -> ValueParser aSource
Retrieve the value associated with the given column. The result is empty
if the column is not present or the value cannot be converted to the desired
type.
(.:?) :: FromValue a => Vector Value -> Column -> ValueParser (Maybe a)Source
Retrieve the value associated with the given column. The result is
Nothing
if the column is not present or the value cannot be converted to
the desired type.
(.!=) :: Parser (Maybe a) -> a -> Parser aSource
Helper for use in combination with .:?
to provide default values for
optional columns.
A type that can be converted from a Value
.
parseValue :: Value -> Parser aSource
fromValue :: FromValue a => Value -> Either String aSource
Converte a value from a Value
, failing if the types do not match.
typeMismatch :: String -> Value -> Parser aSource