module Duckling.Distance.Helpers
( distance
, unitDistance
, withUnit
) where
import Prelude
import Duckling.Dimensions.Types
import Duckling.Distance.Types (DistanceData(..))
import qualified Duckling.Distance.Types as TDistance
import Duckling.Types
unitDistance :: TDistance.Unit -> PatternItem
unitDistance value = Predicate $ \x -> case x of
(Token Distance DistanceData {TDistance.unit = Just unit}) -> value == unit
_ -> False
distance :: Double -> DistanceData
distance x = DistanceData {TDistance.value = x, TDistance.unit = Nothing}
withUnit :: TDistance.Unit -> DistanceData -> DistanceData
withUnit value dd = dd {TDistance.unit = Just value}