influxdb-0.9.1.1: Haskell client library for InfluxDB

Safe HaskellNone
LanguageHaskell2010

Database.InfluxDB.Decode

Synopsis

Documentation

class FromSeries a where Source

A type that can be converted from a Series.

fromSeries :: FromSeries a => Series -> Either String a Source

Converte a value from a Series, failing if the types do not match.

class FromSeriesData a where Source

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.

fromSeriesData_ :: FromSeriesData a => SeriesData -> [a] Source

Same as fromSeriesData but ignores parse errors and returns only successful data.

withValues :: (Vector Value -> ValueParser a) -> Vector Column -> Vector Value -> Parser a Source

Helper function to define parseSeriesData from ValueParsers.

(.:) :: FromValue a => Vector Value -> Column -> ValueParser a Source

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 a Source

Helper for use in combination with .:? to provide default values for optional columns.

fromValue :: FromValue a => Value -> Either String a Source

Converte a value from a Value, failing if the types do not match.