-- Copyright (c) 2016-present, Facebook, Inc.
-- All rights reserved.
--
-- This source code is licensed under the BSD-style license found in the
-- LICENSE file in the root directory of this source tree.


{-# LANGUAGE GADTs #-}
module Duckling.Rules.DE
  ( defaultRules
  , langRules
  , localeRules
  ) where

import Duckling.Dimensions.Types
import qualified Duckling.Distance.DE.Rules as Distance
import qualified Duckling.Duration.DE.Rules as Duration
import qualified Duckling.Email.DE.Rules as Email
import Duckling.Locale
import qualified Duckling.Numeral.DE.Rules as Numeral
import qualified Duckling.Ordinal.DE.Rules as Ordinal
import qualified Duckling.Time.DE.Rules as Time
import qualified Duckling.TimeGrain.DE.Rules as TimeGrain
import Duckling.Types
import qualified Duckling.Volume.DE.Rules as Volume

defaultRules :: Seal Dimension -> [Rule]
defaultRules :: Seal Dimension -> [Rule]
defaultRules = Seal Dimension -> [Rule]
langRules

localeRules :: Region -> Seal Dimension -> [Rule]
localeRules :: Region -> Seal Dimension -> [Rule]
localeRules Region
region (Seal (CustomDimension a
dim)) = Region -> a -> [Rule]
forall a. CustomDimension a => Region -> a -> [Rule]
dimLocaleRules Region
region a
dim
localeRules Region
_ Seal Dimension
_ = []

langRules :: Seal Dimension -> [Rule]
langRules :: Seal Dimension -> [Rule]
langRules (Seal Dimension a
AmountOfMoney) = []
langRules (Seal Dimension a
CreditCardNumber) = []
langRules (Seal Dimension a
Distance) = [Rule]
Distance.rules
langRules (Seal Dimension a
Duration) = [Rule]
Duration.rules
langRules (Seal Dimension a
Email) = [Rule]
Email.rules
langRules (Seal Dimension a
Numeral) = [Rule]
Numeral.rules
langRules (Seal Dimension a
Ordinal) = [Rule]
Ordinal.rules
langRules (Seal Dimension a
PhoneNumber) = []
langRules (Seal Dimension a
Quantity) = []
langRules (Seal Dimension a
RegexMatch) = []
langRules (Seal Dimension a
Temperature) = []
langRules (Seal Dimension a
Time) = [Rule]
Time.rules
langRules (Seal Dimension a
TimeGrain) = [Rule]
TimeGrain.rules
langRules (Seal Dimension a
Url) = []
langRules (Seal Dimension a
Volume) = [Rule]
Volume.rules
langRules (Seal (CustomDimension a
dim)) = Lang -> a -> [Rule]
forall a. CustomDimension a => Lang -> a -> [Rule]
dimLangRules Lang
DE a
dim