This repository has been archived on 2024-10-24. You can view files and clone it, but cannot push or open issues or pull requests.
fradrive-old/src/Data/Encoding/Instances.hs
2019-10-23 17:34:37 +02:00

34 lines
715 B
Haskell

{-# OPTIONS_GHC -fno-warn-orphans #-}
module Data.Encoding.Instances
(
) where
import ClassyPrelude
import Utils.PathPiece
import Data.String (IsString(..))
import Text.Read
import Web.PathPieces
import Data.Encoding
instance PathPiece DynEncoding where
toPathPiece = showToPathPiece
fromPathPiece = encodingFromStringExplicit . unpack
pathPieceJSON ''DynEncoding
instance IsString DynEncoding where
fromString = encodingFromString
instance Read DynEncoding where
readPrec = parens $ lexP >>= \case
Ident str -> maybe (fail "Could not parse encoding") return $ encodingFromStringExplicit str
_ -> fail "Ident lexeme expected"
instance Ord DynEncoding where
compare = comparing show