@@ -0,0 +1,19 @@
1+{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses, OverloadedStrings #-}
2+module Flat.Servant where
3+
4+import Data.Bifunctor
5+import Data.ByteString.Lazy
6+import Flat as F
7+import Servant.API
8+
9+
10+data FlatBinary
11+
12+instance Accept FlatBinary where
13+ contentType _ = "application/octet-stream"
14+
15+instance Flat a => MimeRender FlatBinary a where
16+ mimeRender _ = fromStrict . F.flat
17+
18+instance Flat a => MimeUnrender FlatBinary a where
19+ mimeUnrender _ = first show . F.unflat