packages feed

schematic 0.4.1.0 → 0.4.2.0

raw patch · 3 files changed

+37/−2 lines, 3 files

Files

ChangeLog.md view
@@ -1,5 +1,9 @@ # Revision history for schematic +## 0.4.1.0 -- 2017-11-05++Convenience isomorphisms: txt, num, opt, bln etc+ ## 0.4.1.0 -- 2017-11-01  flens and fget now use type application syntax
schematic.cabal view
@@ -1,5 +1,5 @@ name:                schematic-version:             0.4.1.0+version:             0.4.2.0 synopsis:            JSON-biased spec and validation tool license:             BSD3 license-file:        LICENSE
src/Data/Schematic/Lens.hs view
@@ -10,6 +10,11 @@   , FSubset(..)   , obj   , arr+  , uni+  , txt+  , num+  , opt+  , bln   , textRepr   , numberRepr   , boolRepr@@ -23,6 +28,7 @@ import Data.Scientific import Data.Singletons import Data.Text+import Data.Union import Data.Vector as V import Data.Vinyl import Data.Vinyl.Functor@@ -179,10 +185,35 @@   => Iso' (FieldRepr '(fn, ('SchemaOptional schema))) (Maybe (JsonRepr schema)) optionalRepr = iso (\(FieldRepr (ReprOptional r)) -> r) (FieldRepr . ReprOptional) -obj :: (SingI fields) => Iso' (JsonRepr ('SchemaObject fields)) (Rec FieldRepr fields)+obj+  :: SingI fields+  => Iso' (JsonRepr ('SchemaObject fields)) (Rec FieldRepr fields) obj = iso (\(ReprObject r) -> r) ReprObject  arr   :: (SingI schema)   => Iso' (JsonRepr ('SchemaArray cs schema)) (V.Vector (JsonRepr schema)) arr = iso (\(ReprArray r) -> r) ReprArray++uni+  :: SingI (h ': tl)+  => Iso' (JsonRepr ('SchemaUnion (h ': tl))) (Union JsonRepr (h ': tl))+uni = iso (\(ReprUnion u) -> u) ReprUnion++txt+  :: SingI cs+  => Iso' (JsonRepr ('SchemaText cs)) Text+txt = iso (\(ReprText t) -> t) ReprText++num+  :: SingI cs+  => Iso' (JsonRepr ('SchemaNumber cs)) Scientific+num = iso (\(ReprNumber t) -> t) ReprNumber++bln :: Iso' (JsonRepr 'SchemaBoolean) Bool+bln = iso (\(ReprBoolean b) -> b) ReprBoolean++opt+  :: SingI schema+  => Iso' (JsonRepr ('SchemaOptional schema)) (Maybe (JsonRepr schema))+opt = iso (\(ReprOptional o) -> o) ReprOptional