Created and added stack.yaml and .gitignore files. Relaxed the version dependency on 'binary' package in cabal file. Is that OK? Also brought the minimum cabal version to >=1.8, so I could add a test target that pulls in the library. Changed all tabs to spaces - I don't know when the Haskell compiler started giving warnings about that.
31 lines
1.2 KiB
Haskell
31 lines
1.2 KiB
Haskell
{-# LANGUAGE DeriveDataTypeable #-}
|
|
module Data.Encoding.Exception where
|
|
|
|
import Control.Exception.Extensible
|
|
import Data.Word
|
|
import Data.Typeable
|
|
import Control.Monad.Identity
|
|
|
|
-- | This exception type is thrown whenever something went wrong during the
|
|
-- encoding-process.
|
|
data EncodingException
|
|
= HasNoRepresentation Char -- ^ Thrown if a specific character
|
|
-- is not representable in an encoding.
|
|
deriving (Eq,Ord,Show,Read,Typeable)
|
|
|
|
instance Exception EncodingException
|
|
|
|
-- | This exception type is thrown whenever something went wrong during the
|
|
-- decoding-process.
|
|
data DecodingException
|
|
= IllegalCharacter Word8 -- ^ The sequence contained an illegal
|
|
-- byte that couldn't be decoded.
|
|
| UnexpectedEnd -- ^ more bytes were needed to allow a
|
|
-- successfull decoding.
|
|
| OutOfRange -- ^ the decoded value was out of the unicode range
|
|
| IllegalRepresentation [Word8] -- ^ The character sequence encodes a
|
|
-- character, but is illegal.
|
|
deriving (Eq,Ord,Show,Read,Typeable)
|
|
|
|
instance Exception DecodingException
|