Commit Graph

180 Commits

Author SHA1 Message Date
Oleg Grenrus
45c1cbdfd5 Refactor Stream stuff
- Introduce SourceT, which is simple variant of "correct `ListT`".
  There are another variants possible (like in `streaming`),
  but I'm not sure there's much real difference.

- Introduce `Codensity`. There's a flag if people don't want to depend
  on `kan-extensions`.

- `StreamGenerator` and `ResultStream` are both `SourceT`.
  `Stream` combinator in `servant-client` uses `Codensity` for CPS.

- Add servant-machines, servant-conduit, servant-pipes
- Add streaming cookbook: just code, no explanations.
- Add a script to run streaming 'benchmarks'
2018-11-05 15:48:47 +02:00
Domen Kožar
c7f616ea2d
ResponseHeaders: export GetHeaders' 2018-10-14 12:15:41 +01:00
Nathan van Doorn
7133e9dad2 Add bifunctors instances for Servant.API.Alt
These mirror the corresponding instances for (,)
2018-09-05 13:15:42 +01:00
messis
9df6b1f2a5 Add PutCreated verb 2018-08-13 15:26:34 +02:00
messis
13b521eb90 Add PutCreated verb 2018-08-13 15:15:45 +02:00
Oleg Grenrus
cfade67c2f Cleanup pre-GHC-8.0 stuff 2018-07-11 01:39:38 +03:00
Oleg Grenrus
88f8d3b0d1 Merge servant-generic 2018-07-05 23:21:25 +03:00
Oleg Grenrus
f9bcc15d0b Apply stylish-haskell on all modules 2018-06-29 23:36:39 +03:00
Oleg Grenrus
2c02287b6b Move Servant.Utils.Links -> Servant.Links. Fixes #997. 2018-06-25 14:27:17 +03:00
Oleg Grenrus
7150f2b603 Remove Servant.Utils.Enter 2018-06-24 22:56:30 +03:00
Oleg Grenrus
dcc67f3089 Add FromResultStream/ToStreamGenerator [a] instances.
- Add Streaming endpoint to the comprehensive API.
- Rename BuildFromStream to FromResultStram
   - I'm tempted to rename everything in the Servant.API.Stream
     (add some prefixes, `header` is too good name to steal)

The TODO in `servant-docs` is left intentionally.
2018-06-24 21:52:09 +03:00
Oleg Grenrus
f53370b361
Merge pull request #966 from jvanbruegge/stream-code
Allow to specify a status for streaming endpoints
2018-06-09 08:42:54 +03:00
Oleg Grenrus
be42f3d608 Implement GetHeaders instances without overlapping 2018-06-08 15:10:38 +03:00
Oleg Grenrus
46663f29b0 Add safeLink'
Resolves #952
2018-06-01 12:50:56 +03:00
Jan van Brügge
dbbe9b7321 Allow to specify the status of streaming endpoints 2018-05-28 12:00:29 +02:00
Jan van Brügge
b80a3e6279 Add NoFraming strategy 2018-05-24 05:08:48 +02:00
Jan van Brügge
0ba09c999b Change definition of StreamGenerator 2018-05-24 05:08:48 +02:00
Muhammad Attiyah
8cb0d4817e Fix typo in a comment in the Stream module. 2018-05-23 18:15:45 +02:00
Oleg Grenrus
dd7ec1dfd7 Allow base-compat-0.10.0 2018-04-11 11:26:14 +03:00
Oleg Grenrus
8058891299 Reformat servant 2018-03-11 17:58:31 +02:00
Oleg Grenrus
3e1748c965 Add description modifier helpers and parametrise Capture 2018-02-15 12:28:42 +02:00
Oleg Grenrus
22ec980f6e Update hlint.yaml and fix some hints in servant and servant-server 2018-01-26 17:38:57 +02:00
Oleg Grenrus
bc3f61d615 Add Servant.API.Modifiers to servant
Changes Header, ReqBody and QueryParam to take a modifier list.

Resolves https://github.com/haskell-servant/servant/issues/856

ResponseHeader story turns to be somewhat ugly, but it can be made
elegant when https://github.com/haskell-servant/servant/issues/841 is
implemnted, then we can omit HList aka Header Heterogenous List
implementation.

- servant-server changes:

  Writing server side intepretations is quite simple using
  `unfoldRequestArgument`, which makes Header and QueryParam look quite
  the same.

  `ReqBody` cannot be easily made optional with current design (what that
  would mean: No Content-Type Header?), so that dimensions isn't used
  there.

- Add HasLink for all the rest ComprehensiveAPI combinators
- Add 'tricky' Header', QueryParam' endpoints to ComprehensiveAPI
- servant-docs: Quick'n'dirty implementation. Don't use modifiers information (yet).
2018-01-25 09:10:11 +02:00
Michael Sloan
7e0ad51b62 Use (a :: *) on phantom type variables for kinder type checking #887 2018-01-17 21:16:21 -08:00
Oleg Grenrus
71425ab23c Fix #835. Use Escaped to prevent double-escaping 2017-12-18 19:23:31 +02:00
Oleg Grenrus
cbd3862f24
Merge pull request #836 from gbaz/gb-streaming
Stream endpoint support for servant
2017-12-03 17:19:47 +02:00
Oleg Grenrus
2779f523ca Add doctests (and changelog) 2017-11-07 19:08:10 +02:00
Robert Hensing
7410b4faa8 Links: add allLinks function and MkLink instance for (:<|>)
This lets you generate all links at once, which is useful in
conjunction with servant-generic.
2017-11-07 18:39:02 +02:00
Gershom
db13077ccb wall clean and compat 2017-11-06 11:55:27 -05:00
Gershom
38e87397e7 add tests, fix to make tests work 2017-11-04 00:10:29 -04:00
Gershom
0c77a2b4b0 make client endpoint give polymorphic result 2017-10-24 17:26:18 -07:00
Gershom
e75a3cc37b streaming client actually streams 2017-10-24 17:12:21 -07:00
Gershom
9a2ac6f4dd HasClient instance for Stream 2017-10-20 15:09:11 -04:00
Gershom
9132a5bb84 fix indentation 2017-10-19 17:43:01 -04:00
Gershom
d4168aa3ae first round of changes 2017-10-19 17:41:49 -04:00
Gershom
c5e04514f9 initial checkin 2017-10-18 18:43:43 -04:00
Oleg Grenrus
15cc4f55dd Update docs related to hoistServer 2017-10-01 20:24:22 +03:00
Catherine Galkina
262453b0d1 Add multiline Description example 2017-06-19 16:39:05 +03:00
Catherine Galkina
2e59a82d01 Add Description and Summary combinators 2017-06-08 17:35:24 +03:00
Catherine Galkina
505ca457cc Lower Sub and Alternative infix precedence to 4 and 3 respectively 2017-06-02 18:11:05 +03:00
Oleg Grenrus
b6cfd64b5a GHC-8.2 readyness 2017-05-24 08:02:57 +03:00
David Turner
249a8386a5 Derive Enum on EmptyAPI 2017-05-16 16:04:25 +00:00
David Turner
021bcd9e23 Document that EmptyAPI is, morally speaking, the unit of :<|> 2017-05-16 16:03:25 +00:00
David Turner
2c6aca0fc6 Add to ComprehensiveAPI 2017-05-16 10:26:06 +00:00
David Turner
5a65563d9a Re-export EmptyAPI(..) from Servant.API 2017-05-16 10:05:58 +00:00
David Turner
d02c7668ee Add EmptyAPI type 2017-05-16 10:05:24 +00:00
Alexander Vieth
6389134423 Change to ServerT Raw m = Tagged m Application
For uniformity of Enter.

Previously, `ServerT Raw m ~ Application`. Seems reasonable, but has the
unfortunate consequence of making `Enter` useless for `Raw` routes.
With this change `Tagged m Application` is retagged by `Enter`.
2017-05-15 19:54:43 +03:00
Oleg Grenrus
d4cffe6591 Add functional dependency back to Enter 2017-05-15 19:26:03 +03:00
Oleg Grenrus
54c3053342 Escape segments in linkURI 2017-05-14 20:42:10 +03:00
Oleg Grenrus
2cfcff4c7f Merge pull request #745 from phadej/issue-715
Resolve #715: Add linkUri'
2017-05-14 20:38:40 +03:00