toml-parser-2.0.0.0: TOML 1.0.0 parser
Copyright(c) Eric Mertens 2023
LicenseISC
Maintaineremertens@gmail.com
Safe HaskellSafe-Inferred
LanguageHaskell2010

Toml.Schema.Generic.FromValue

Description

Generic implementations of matching tables and arrays.

Synopsis

Record from table

class GParseTable f where Source #

Supports conversion of TOML tables into record values using field selector names as TOML keys.

Methods

gParseTable :: ParseTable l (f a) Source #

Convert a value and apply the continuation to the result.

Instances

Instances details
GParseTable (U1 :: Type -> Type) Source #

Emits empty table

Instance details

Defined in Toml.Schema.Generic.FromValue

Methods

gParseTable :: ParseTable l (U1 a) Source #

(GParseTable f, GParseTable g) => GParseTable (f :*: g) Source #

Matches left then right component

Instance details

Defined in Toml.Schema.Generic.FromValue

Methods

gParseTable :: ParseTable l ((f :*: g) a) Source #

GParseTable f => GParseTable (C1 ('MetaCons sym fix 'True) f) Source #

Ignores value constructor name - only supports record constructors

Instance details

Defined in Toml.Schema.Generic.FromValue

Methods

gParseTable :: ParseTable l (C1 ('MetaCons sym fix 'True) f a) Source #

GParseTable f => GParseTable (D1 c f) Source #

Ignores type constructor name

Instance details

Defined in Toml.Schema.Generic.FromValue

Methods

gParseTable :: ParseTable l (D1 c f a) Source #

(Selector s, FromValue a) => GParseTable (S1 s (K1 i (Maybe a) :: Type -> Type)) Source #

Omits the key from the table on nothing, includes it on just

Instance details

Defined in Toml.Schema.Generic.FromValue

Methods

gParseTable :: ParseTable l (S1 s (K1 i (Maybe a)) a0) Source #

(Selector s, FromValue a) => GParseTable (S1 s (K1 i a :: Type -> Type)) Source #

Uses record selector name as table key

Instance details

Defined in Toml.Schema.Generic.FromValue

Methods

gParseTable :: ParseTable l (S1 s (K1 i a) a0) Source #

genericParseTable :: (Generic a, GParseTable (Rep a)) => ParseTable l a Source #

Match a Table' using the field names in a record.

genericFromTable :: (Generic a, GParseTable (Rep a)) => Value' l -> Matcher l a Source #

Implementation of fromValue using genericParseTable to derive a match from the record field names of the target type.

Product type from array

class GFromArray f where Source #

Supports conversion of TOML arrays into product-type values.

Methods

gFromArray :: StateT [Value' l] (Matcher l) (f a) Source #

Instances

Instances details
GFromArray (U1 :: Type -> Type) Source #

Uses no array elements

Instance details

Defined in Toml.Schema.Generic.FromValue

Methods

gFromArray :: StateT [Value' l] (Matcher l) (U1 a) Source #

(GFromArray f, GFromArray g) => GFromArray (f :*: g) Source # 
Instance details

Defined in Toml.Schema.Generic.FromValue

Methods

gFromArray :: StateT [Value' l] (Matcher l) ((f :*: g) a) Source #

FromValue a => GFromArray (K1 i a :: Type -> Type) Source # 
Instance details

Defined in Toml.Schema.Generic.FromValue

Methods

gFromArray :: StateT [Value' l] (Matcher l) (K1 i a a0) Source #

GFromArray f => GFromArray (M1 i c f) Source # 
Instance details

Defined in Toml.Schema.Generic.FromValue

Methods

gFromArray :: StateT [Value' l] (Matcher l) (M1 i c f a) Source #

genericFromArray :: (Generic a, GFromArray (Rep a)) => Value' l -> Matcher l a Source #

Match a Value' as an array positionally matching field fields of a constructor to the elements of the array.