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