git.iko.soy/typeable/openapi3
on master help sign in
Fix GHC 8 build by manually writing out SwaggerItems prisms
cd3dc81Nickolay Kudasov
src/Data/Swagger/Lens.hs+20−1
@@ -2,6 +2,7 @@
2{-# LANGUAGE FunctionalDependencies #-}
2{-# LANGUAGE FunctionalDependencies #-}
3{-# LANGUAGE GADTs #-}
3{-# LANGUAGE GADTs #-}
4{-# LANGUAGE MultiParamTypeClasses #-}
4{-# LANGUAGE MultiParamTypeClasses #-}
5+{-# LANGUAGE RankNTypes #-}
5{-# LANGUAGE TemplateHaskell #-}
6{-# LANGUAGE TemplateHaskell #-}
6module Data.Swagger.Lens where
7module Data.Swagger.Lens where
7
8
@@ -42,8 +43,26 @@ makeLenses ''ParamOtherSchema
42makeLenses ''Header
43makeLenses ''Header
43-- ** 'Schema' lenses
44-- ** 'Schema' lenses
44makeLenses ''Schema
45makeLenses ''Schema
46+
45-- ** 'SwaggerItems' prisms
47-- ** 'SwaggerItems' prisms
46−makePrisms ''SwaggerItems
48+
49+_SwaggerItemsArray :: forall t. (t ~ Schema) => Review (SwaggerItems t) [Referenced Schema]
50+_SwaggerItemsArray
51+ = prism (\x -> SwaggerItemsArray x) $ \x -> case x of
52+ SwaggerItemsPrimitive c p -> Left (SwaggerItemsPrimitive c p)
53+ SwaggerItemsObject o -> Left (SwaggerItemsObject o)
54+ SwaggerItemsArray a -> Right a
55+
56+_SwaggerItemsObject :: forall t. (t ~ Schema) => Review (SwaggerItems t) (Referenced Schema)
57+_SwaggerItemsObject
58+ = prism (\x -> SwaggerItemsObject x) $ \x -> case x of
59+ SwaggerItemsPrimitive c p -> Left (SwaggerItemsPrimitive c p)
60+ SwaggerItemsObject o -> Right o
61+ SwaggerItemsArray a -> Left (SwaggerItemsArray a)
62+
63+_SwaggerItemsPrimitive :: forall t p f. (Profunctor p, Bifunctor p, Functor f) => Optic' p f (SwaggerItems t) (Maybe (CollectionFormat t), ParamSchema t)
64+_SwaggerItemsPrimitive = unto (\(c, p) -> SwaggerItemsPrimitive c p)
65+
47-- ** 'ParamSchema' lenses
66-- ** 'ParamSchema' lenses
48makeLenses ''ParamSchema
67makeLenses ''ParamSchema
49-- ** 'Xml' lenses
68-- ** 'Xml' lenses