on master help sign in
CPP to check for servant version
commitd3bb525b094c05737baa69f53f566d88651e6117 authorMark Wotton <mwotton@gmail.com> dateWed 16 Dec 2020, 13:14 (6 years ago) parent00fbac5
3 files changed+34−38
src/Roboservant/Types/ReifiedApi.hs+14−12 stack.yaml+4−10 stack.yaml.lock+16−16
src/Roboservant/Types/ReifiedApi.hs+14−12
@@ -1,4 +1,3 @@
1−
21{-# LANGUAGE AllowAmbiguousTypes #-}
32{-# LANGUAGE DataKinds #-}
43{-# LANGUAGE DerivingStrategies #-}
@@ -16,7 +15,7 @@
1615{-# LANGUAGE TypeFamilies #-}
1716{-# LANGUAGE TypeOperators #-}
1817{-# LANGUAGE UndecidableInstances #-}
19−
18+{-# LANGUAGE CPP #-}
2019module Roboservant.Types.ReifiedApi where
2120
2221
@@ -181,6 +180,18 @@ instance
181180
182181
183182-- this isn't happy in 0.16.2
183+#if MIN_VERSION_servant(0,17,0)
184+instance
185+ ( BuildFrom (IfLenient String mods captureType)
186+ , ToReifiedEndpoint endpoint) =>
187+ ToReifiedEndpoint (Capture' mods name captureType :> endpoint)
188+ where
189+ type EndpointArgs (Capture' mods name captureType :> endpoint) = IfLenient String mods captureType ': EndpointArgs endpoint
190+ type EndpointRes (Capture' mods name captureType :> endpoint) = EndpointRes endpoint
191+ reifiedEndpointArguments =
192+ tagType (Argument (buildFrom @(IfLenient String mods captureType)))
193+ V.:& reifiedEndpointArguments @endpoint
194+#else
184195instance
185196 ( BuildFrom captureType
186197 , ToReifiedEndpoint endpoint) =>
@@ -192,17 +203,8 @@ instance
192203 tagType (Argument (buildFrom @(captureType)))
193204 V.:& reifiedEndpointArguments @endpoint
194205
206+#endif
195207-- caching for merge
196−-- instance
197−-- ( BuildFrom (IfLenient String mods captureType)
198−-- , ToReifiedEndpoint endpoint) =>
199−-- ToReifiedEndpoint (Capture' mods name captureType :> endpoint)
200−-- where
201−-- type EndpointArgs (Capture' mods name captureType :> endpoint) = IfLenient String mods captureType ': EndpointArgs endpoint
202−-- type EndpointRes (Capture' mods name captureType :> endpoint) = EndpointRes endpoint
203−-- reifiedEndpointArguments =
204−-- tagType (Argument (buildFrom @(IfLenient String mods captureType)))
205−-- V.:& reifiedEndpointArguments @endpoint
206208
207209instance
208210 ( BuildFrom (IfLenient String mods requestType)
stack.yaml+4−10
@@ -10,13 +10,7 @@ extra-deps:
1010- constraints-extras-0.3.0.2
1111- dependent-map-0.4.0.0
1212
13−- servant-0.16.2
14−- servant-client-0.16.0.1
15−- servant-client-core-0.16
16−- servant-server-0.16.2
17−
18−# cached for testing
19−# - servant-0.18.2
20−# - servant-client-0.18.2
21−# - servant-client-core-0.18.2
22−# - servant-server-0.18.2
13+- servant-0.18.2
14+- servant-client-0.18.2
15+- servant-client-core-0.18.2
16+- servant-server-0.18.2
stack.yaml.lock+16−16
@@ -40,33 +40,33 @@ packages:
4040 original:
4141 hackage: dependent-map-0.4.0.0
4242- completed:
43− hackage: servant-0.16.2@sha256:6c5d19d09a9dd2f2b2bf99193f944491f8374802678b79ec729e3f3ae51e216d,5867
43+ hackage: servant-0.18.2@sha256:f8c9f0e9891a3ada1337a3c0b369333a3b5a2d0909dd3cd09d79bc26adeaca44,5298
4444 pantry-tree:
45− size: 2604
46− sha256: bee4504840cf4836326e85f1cf02584bf898188b64d976dac6c6c6793d926794
45+ size: 2662
46+ sha256: e930e814de1aa4d24274bdf18341a50b7ed38604ae4734f730e09238ac5bf7e2
4747 original:
48− hackage: servant-0.16.2
48+ hackage: servant-0.18.2
4949- completed:
50− hackage: servant-client-0.16.0.1@sha256:f970ad4e927530b77f52b99a175c85cfdcd1ef988083d56a1f68c6a3dafe8d51,4376
50+ hackage: servant-client-0.18.2@sha256:82578ade7468873259bb2fdc9d62290a0f998550900683e1410a237ed4b05410,4591
5151 pantry-tree:
52− size: 804
53− sha256: 3690a9c4dbdf8a502648c8c29029b1a0c78e53fd84db90ed388f7abbf5518c25
52+ size: 1300
53+ sha256: 6324892c77bedbce32f0d6f1612fc2cb0d82c163d3be39efb951d3cc3792ce4a
5454 original:
55− hackage: servant-client-0.16.0.1
55+ hackage: servant-client-0.18.2
5656- completed:
57− hackage: servant-client-core-0.16@sha256:34e28b8d59b0b61fb3c97fb61043583538016898604a67bfa3bb35f02d8e4d9c,3545
57+ hackage: servant-client-core-0.18.2@sha256:ad63ae0f227373fea7e547d4c2a7b0b69e112ff409a83cbadffc9f6ee049926f,3763
5858 pantry-tree:
59− size: 1365
60− sha256: d1a8c41b18e9648af8f1221c7747246ecde2a2ce2bae697c3c986f02a0caf857
59+ size: 1444
60+ sha256: 9e37bc5f8cbb70cf1accb20bd6f83fca4c2ca42472cd0fc4b22183c2c57cbe3b
6161 original:
62− hackage: servant-client-core-0.16
62+ hackage: servant-client-core-0.18.2
6363- completed:
64− hackage: servant-server-0.16.2@sha256:f6b36df7c4f1688ff9d48d272e6cfc5f001b3221d2a732e73faf44e8b9e1ea04,5798
64+ hackage: servant-server-0.18.2@sha256:56679af62ab8820a2108da6153d9ae9dde37199e62172365bdaea1458c3f7c2d,5482
6565 pantry-tree:
66− size: 2517
67− sha256: 12330638c1b455050d19ad0797b35893efbb5cd233789581eae93cc8983a84c3
66+ size: 2614
67+ sha256: 3ac7430134439e4b67f0f5333f63b89d0cb7de5e2e07f0af7801c8e223942b9c
6868 original:
69− hackage: servant-server-0.16.2
69+ hackage: servant-server-0.18.2
7070snapshots:
7171- completed:
7272 size: 532380