packages feed

keiro-dsl-0.21.0.0: test/conformance-mapped-register-construction/Conformance/MappedRegisterConstruction/Lift.hs

module Conformance.MappedRegisterConstruction.Lift (atTime, atTimeCases) where

import Conformance.MappedRegisterConstruction.Domain (MaybeTime (..))
import Data.List.NonEmpty (NonEmpty (..))
import Data.Text (Text)
import Data.Time.Calendar (fromGregorian)
import Data.Time.Clock (UTCTime (..))

-- Pure and total. Change the declared write-lift version whenever behavior changes.
atTime :: UTCTime -> MaybeTime
atTime value = MaybeTime (Just value)

atTimeCases :: NonEmpty (Text, UTCTime, MaybeTime)
atTimeCases = ("epoch", epoch, MaybeTime (Just epoch)) :| [("later", later, MaybeTime (Just later))]
  where
    epoch = UTCTime (fromGregorian 1970 1 1) 0
    later = UTCTime (fromGregorian 2026 10 14) 12345