module Network.IPFS.MIME.RawPlainText.Types (RawPlainText) where
import Network.HTTP.Media
import qualified Servant.API as API
import RIO
import qualified RIO.ByteString.Lazy as Lazy
data RawPlainText
instance API.Accept RawPlainText where
contentType :: Proxy RawPlainText -> MediaType
contentType Proxy RawPlainText
_ = ByteString
"text" ByteString -> ByteString -> MediaType
// ByteString
"plain"
instance API.MimeRender RawPlainText Text where
mimeRender :: Proxy RawPlainText -> Text -> ByteString
mimeRender Proxy RawPlainText
_ = ByteString -> ByteString
Lazy.fromStrict (ByteString -> ByteString)
-> (Text -> ByteString) -> Text -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> ByteString
encodeUtf8
instance API.MimeRender RawPlainText ByteString where
mimeRender :: Proxy RawPlainText -> ByteString -> ByteString
mimeRender Proxy RawPlainText
_ = ByteString -> ByteString
Lazy.fromStrict
instance API.MimeRender RawPlainText Lazy.ByteString where
mimeRender :: Proxy RawPlainText -> ByteString -> ByteString
mimeRender Proxy RawPlainText
_ = ByteString -> ByteString
forall a. a -> a
id
instance API.MimeUnrender RawPlainText Text where
mimeUnrender :: Proxy RawPlainText -> ByteString -> Either String Text
mimeUnrender Proxy RawPlainText
_ ByteString
bs =
case ByteString -> Either UnicodeException Text
decodeUtf8' (ByteString -> Either UnicodeException Text)
-> ByteString -> Either UnicodeException Text
forall a b. (a -> b) -> a -> b
$ ByteString -> ByteString
Lazy.toStrict ByteString
bs of
Left UnicodeException
err -> String -> Either String Text
forall a b. a -> Either a b
Left (String -> Either String Text) -> String -> Either String Text
forall a b. (a -> b) -> a -> b
$ UnicodeException -> String
forall a. Show a => a -> String
show UnicodeException
err
Right Text
txt -> Text -> Either String Text
forall a b. b -> Either a b
Right Text
txt
instance API.MimeUnrender RawPlainText ByteString where
mimeUnrender :: Proxy RawPlainText -> ByteString -> Either String ByteString
mimeUnrender Proxy RawPlainText
_ = ByteString -> Either String ByteString
forall a b. b -> Either a b
Right (ByteString -> Either String ByteString)
-> (ByteString -> ByteString)
-> ByteString
-> Either String ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> ByteString
Lazy.toStrict
instance API.MimeUnrender RawPlainText Lazy.ByteString where
mimeUnrender :: Proxy RawPlainText -> ByteString -> Either String ByteString
mimeUnrender Proxy RawPlainText
_ = ByteString -> Either String ByteString
forall a b. b -> Either a b
Right