WashNGo-2.12: WASH/Mail/ContentDisposition.hs
module WASH.Mail.ContentDisposition where
import WASH.Mail.RFC2822
data ContentDisposition =
None
| Inline { parameters :: [ContentDispositionParm] }
| Attachment { parameters :: [ContentDispositionParm] }
data ContentDispositionParm =
FileNameParm String
| CreationDateParm DateTime2822
| ModificationDateParm DateTime2822
| ReadDateParm DateTime2822
| SizeParm Int
hasContentDisposition None = False
hasContentDisposition _ = True
toString (None) =
""
toString (Inline { parameters = cdps }) =
"inline" ++ cdpsToString cdps
toString (Attachment { parameters = cdps }) =
"attachment" ++ cdpsToString cdps
cdpsToString = concatMap cdpToString
cdpToString (FileNameParm file) =
"; filename=\""++file++"\""
cdpToString (CreationDateParm dt) =
"; creation-date=\""++shows dt "\""
cdpToString (ModificationDateParm dt) =
"; modification-date=\""++shows dt "\""
cdpToString (ReadDateParm dt) =
"; read-date=\""++shows dt "\""
cdpToString (SizeParm n) =
"; size="++show n