servant-serialization-0.2.1
Safe HaskellSafe-Inferred
LanguageHaskell2010

Servant.API.ContentTypes.Cereal

Synopsis

Documentation

data CerealFmt Source #

Content-type for instances of the Serialize class in the package "cereal". Trailing garbage is ignored.

Instances

Instances details
Accept CerealFmt Source #

Mime-type using the word "hackage" and the name of the package "cereal".

Instance details

Defined in Servant.API.ContentTypes.Cereal

Serialize a => MimeRender CerealFmt a Source #
>>> mimeRender (Proxy :: Proxy CerealFmt) (3.14 :: Float)
"@H\245\195"
Instance details

Defined in Servant.API.ContentTypes.Cereal

Serialize a => MimeUnrender CerealFmt a Source #
>>> let bsl = mimeRender (Proxy :: Proxy CerealFmt) (3.14 :: Float)
>>> mimeUnrender (Proxy :: Proxy CerealFmt) bsl :: Either String Float
Right 3.14
>>> mimeUnrender (Proxy :: Proxy CerealFmt) (bsl <> "trailing garbage") :: Either String Float
Right 3.14

Cereal doesn't detect this preceding garbage.

>>> mimeUnrender (Proxy :: Proxy CerealFmt) ("preceding garbage" <> bsl) :: Either String Float
Right ...
>>> mimeUnrender (Proxy :: Proxy CerealFmt) "garbage" :: Either String (Float, Float)
Left "Data.Serialize.decodeLazy: too few bytes\nFrom:\tdemandInput\n\n"
Instance details

Defined in Servant.API.ContentTypes.Cereal