-- |
-- Module       : Data.Text.Encoding.Base16.Error
-- Copyright 	: (c) 2019 Emily Pillmore
-- License	: BSD-style
--
-- Maintainer	: Emily Pillmore <emilypi@cohomolo.gy>
-- Stability	: Experimental
-- Portability	: portable
--
-- This module contains the error types raised (not as exceptions!)
-- in the decoding process.
--
module Data.Text.Encoding.Base16.Error
( Base16Error(..)
) where


import Data.Text (Text)

-- | This data type represents the type of decoding errors of
-- various kinds as they pertain to decoding 'Text' values.
-- Namely, to distinguish between decoding errors from opaque
-- unicode exceptions caught in the unicode decoding process.
--
data Base16Error e
  = DecodeError Text
    -- ^ The error associated with decoding failure
    -- as a result of the Base16 decoding process
  | ConversionError e
    -- ^ The error associated with the decoding failure
    -- as a result of the conversion process `'ByteString' -> 'Text'`
  deriving (Base16Error e -> Base16Error e -> Bool
(Base16Error e -> Base16Error e -> Bool)
-> (Base16Error e -> Base16Error e -> Bool) -> Eq (Base16Error e)
forall e. Eq e => Base16Error e -> Base16Error e -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Base16Error e -> Base16Error e -> Bool
$c/= :: forall e. Eq e => Base16Error e -> Base16Error e -> Bool
== :: Base16Error e -> Base16Error e -> Bool
$c== :: forall e. Eq e => Base16Error e -> Base16Error e -> Bool
Eq, Int -> Base16Error e -> ShowS
[Base16Error e] -> ShowS
Base16Error e -> String
(Int -> Base16Error e -> ShowS)
-> (Base16Error e -> String)
-> ([Base16Error e] -> ShowS)
-> Show (Base16Error e)
forall e. Show e => Int -> Base16Error e -> ShowS
forall e. Show e => [Base16Error e] -> ShowS
forall e. Show e => Base16Error e -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Base16Error e] -> ShowS
$cshowList :: forall e. Show e => [Base16Error e] -> ShowS
show :: Base16Error e -> String
$cshow :: forall e. Show e => Base16Error e -> String
showsPrec :: Int -> Base16Error e -> ShowS
$cshowsPrec :: forall e. Show e => Int -> Base16Error e -> ShowS
Show)