{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE DerivingStrategies, DeriveAnyClass #-}

module DSV.LookupErrorUtf8
  ( LookupErrorUtf8 (..)
  ) where

import DSV.IO
import DSV.Prelude

-- | The general concept of what can go wrong when you look up the position of a particular element in a list.
data LookupErrorUtf8
  = LookupErrorUtf8_Missing  -- ^ There is /no/ matching element.
  | LookupErrorUtf8_Duplicate  -- ^ There are /more than one/ matching elements.
  | LookupErrorUtf8_Invalid  -- ^ Found one matching element, but it is not a valid UTF-8 string.
  deriving stock (LookupErrorUtf8 -> LookupErrorUtf8 -> Bool
(LookupErrorUtf8 -> LookupErrorUtf8 -> Bool)
-> (LookupErrorUtf8 -> LookupErrorUtf8 -> Bool)
-> Eq LookupErrorUtf8
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: LookupErrorUtf8 -> LookupErrorUtf8 -> Bool
$c/= :: LookupErrorUtf8 -> LookupErrorUtf8 -> Bool
== :: LookupErrorUtf8 -> LookupErrorUtf8 -> Bool
$c== :: LookupErrorUtf8 -> LookupErrorUtf8 -> Bool
Eq, Int -> LookupErrorUtf8 -> ShowS
[LookupErrorUtf8] -> ShowS
LookupErrorUtf8 -> String
(Int -> LookupErrorUtf8 -> ShowS)
-> (LookupErrorUtf8 -> String)
-> ([LookupErrorUtf8] -> ShowS)
-> Show LookupErrorUtf8
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [LookupErrorUtf8] -> ShowS
$cshowList :: [LookupErrorUtf8] -> ShowS
show :: LookupErrorUtf8 -> String
$cshow :: LookupErrorUtf8 -> String
showsPrec :: Int -> LookupErrorUtf8 -> ShowS
$cshowsPrec :: Int -> LookupErrorUtf8 -> ShowS
Show)
  deriving anyclass Show LookupErrorUtf8
Typeable LookupErrorUtf8
Typeable LookupErrorUtf8
-> Show LookupErrorUtf8
-> (LookupErrorUtf8 -> SomeException)
-> (SomeException -> Maybe LookupErrorUtf8)
-> (LookupErrorUtf8 -> String)
-> Exception LookupErrorUtf8
SomeException -> Maybe LookupErrorUtf8
LookupErrorUtf8 -> String
LookupErrorUtf8 -> SomeException
forall e.
Typeable e
-> Show e
-> (e -> SomeException)
-> (SomeException -> Maybe e)
-> (e -> String)
-> Exception e
displayException :: LookupErrorUtf8 -> String
$cdisplayException :: LookupErrorUtf8 -> String
fromException :: SomeException -> Maybe LookupErrorUtf8
$cfromException :: SomeException -> Maybe LookupErrorUtf8
toException :: LookupErrorUtf8 -> SomeException
$ctoException :: LookupErrorUtf8 -> SomeException
$cp2Exception :: Show LookupErrorUtf8
$cp1Exception :: Typeable LookupErrorUtf8
Exception