{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE FunctionalDependencies #-}
{-# LANGUAGE FlexibleInstances #-}

module Data.Aviation.Aip.AipPg where

import Data.Digit(Digit, parsedigit)
import Text.Parser.Char(CharParsing, string)
import Papa

data AipPg =
  AipPg {
    _aippg1 ::
      Digit
  , _aippg2 ::
      Digit
  } deriving (Eq, Ord, Show)

makeClassy ''AipPg

parseAipPg ::
  (CharParsing p, Monad p) =>
  p AipPg
parseAipPg =
  AipPg <$> parsedigit <*> parsedigit

parseAipPgHref ::
  (CharParsing p, Monad p) =>
  p AipPg
parseAipPgHref =
  string "aip.asp?pg=" *> 
  parseAipPg