module Network.DomainAuth.Mail.Types where
import qualified Data.ByteString.Lazy.Char8 as L
import Data.Char
import Data.Sequence
type RawMail = L.ByteString
type RawHeader = L.ByteString
type RawBody = L.ByteString
type RawField = L.ByteString
type RawFieldKey = L.ByteString
type RawFieldValue = L.ByteString
type RawBodyChunk = L.ByteString
data Mail = Mail {
mailHeader :: Header
, mailBody :: Body
} deriving (Eq,Show)
type Header = [Field]
data Field = Field {
fieldSearchKey :: CanonFieldKey
, fieldKey :: FieldKey
, fieldValue :: FieldValue
} deriving (Eq,Show)
type CanonFieldKey = L.ByteString
type FieldKey = L.ByteString
type FieldValue = [L.ByteString]
type Body = Seq L.ByteString
canonicalizeKey :: FieldKey -> CanonFieldKey
canonicalizeKey = L.map toLower