@@ -10,6 +10,11 @@ module Data.Schematic.Lens
10 , FSubset(..)
10 , FSubset(..)
13 , textRepr
18 , textRepr
14 , numberRepr
19 , numberRepr
15 , boolRepr
20 , boolRepr
@@ -23,6 +28,7 @@ import Data.Schematic.Schema
23import Data.Scientific
28import Data.Scientific
24import Data.Singletons
29import Data.Singletons
25import Data.Text
30import Data.Text
26import Data.Vector as V
32import Data.Vector as V
27import Data.Vinyl
33import Data.Vinyl
28import Data.Vinyl.Functor
34import Data.Vinyl.Functor
@@ -179,10 +185,35 @@ optionalRepr
179 => Iso' (FieldRepr '(fn, ('SchemaOptional schema))) (Maybe (JsonRepr schema))
185 => Iso' (FieldRepr '(fn, ('SchemaOptional schema))) (Maybe (JsonRepr schema))
180optionalRepr = iso (\(FieldRepr (ReprOptional r)) -> r) (FieldRepr . ReprOptional)
186optionalRepr = iso (\(FieldRepr (ReprOptional r)) -> r) (FieldRepr . ReprOptional)
182−obj :: (SingI fields) => Iso' (JsonRepr ('SchemaObject fields)) (Rec FieldRepr fields)
190+ => Iso' (JsonRepr ('SchemaObject fields)) (Rec FieldRepr fields)
183obj = iso (\(ReprObject r) -> r) ReprObject
191obj = iso (\(ReprObject r) -> r) ReprObject
186 :: (SingI schema)
194 :: (SingI schema)
187 => Iso' (JsonRepr ('SchemaArray cs schema)) (V.Vector (JsonRepr schema))
195 => Iso' (JsonRepr ('SchemaArray cs schema)) (V.Vector (JsonRepr schema))
188arr = iso (\(ReprArray r) -> r) ReprArray
196arr = iso (\(ReprArray r) -> r) ReprArray
200+ => Iso' (JsonRepr ('SchemaUnion (h ': tl))) (Union JsonRepr (h ': tl))
201+uni = iso (\(ReprUnion u) -> u) ReprUnion
205+ => Iso' (JsonRepr ('SchemaText cs)) Text
206+txt = iso (\(ReprText t) -> t) ReprText
210+ => Iso' (JsonRepr ('SchemaNumber cs)) Scientific
211+num = iso (\(ReprNumber t) -> t) ReprNumber
213+bln :: Iso' (JsonRepr 'SchemaBoolean) Bool
214+bln = iso (\(ReprBoolean b) -> b) ReprBoolean
218+ => Iso' (JsonRepr ('SchemaOptional schema)) (Maybe (JsonRepr schema))
219+opt = iso (\(ReprOptional o) -> o) ReprOptional