module Exception ( AnyException (..), InvalidTreeGrepperResult (..), NoCommits (..), ProcessException (..), UnknownFileExtension (..), InvalidDiff (..), InvalidIssue (..), CannotReadFile (..), ) where import CMark qualified as D import Control.Exception import Data.ByteString.Lazy.Char8 as LB import Data.Void (Void) import System.Exit (ExitCode) import Text.Megaparsec qualified as P data AnyException = InvalidTreeGrepperResult' InvalidTreeGrepperResult | NoCommits' NoCommits | ProcessException' ProcessException | UnknownFileExtension' UnknownFileExtension | InvalidDiff' InvalidDiff | InvalidIssue' InvalidIssue deriving (Show) instance Exception AnyException data InvalidTreeGrepperResult = InvalidTreeGrepperResult { error :: String } deriving (Show) instance Exception InvalidTreeGrepperResult data NoCommits = NoCommits deriving (Show) instance Exception NoCommits data ProcessException = ProcessException String ExitCode LB.ByteString deriving (Show) instance Exception ProcessException data UnknownFileExtension = UnknownFileExtension { extension :: String } deriving (Show) instance Exception UnknownFileExtension data InvalidDiff = InvalidDiff String deriving (Show) instance Exception InvalidDiff data InvalidIssue = InvalidIssue (P.ParseErrorBundle [D.Node] Void) deriving (Show) instance Exception InvalidIssue data CannotReadFile = CannotReadFile deriving (Show) instance Exception CannotReadFile