packages feed

cereal-time-0.1.0.0: src/Data/Time/Format/Serialize.hs

{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE CPP #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}

{-|
  Module:      Data.Time.Format.Serialize
  Copyright:   (c) 2017 Al Zohali
  License:     BSD3
  Maintainer:  Al Zohali <zohl@fmap.me>
  Stability:   stable

  = Description
  'Serialize' instances for datatypes from 'Data.Time.Format'.
-}
module Data.Time.Format.Serialize where

import Data.Time.Format (TimeLocale(..))
import Data.Time.LocalTime.Serialize ()
import Data.Serialize (Serialize(..))

#if !MIN_VERSION_base(4,8,0)
import Control.Applicative ((<$>), (<*>))
#endif

-- | 'Serialize' instance for 'TimeLocale'.
instance Serialize TimeLocale where
  put TimeLocale {..} = do
    put wDays
    put months
    put amPm
    put dateTimeFmt
    put dateFmt
    put timeFmt
    put time12Fmt
    put knownTimeZones
  get = TimeLocale <$> get <*> get <*> get <*> get <*> get <*> get <*> get <*> get