{-# 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