34 lines
715 B
Haskell
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
|