packages feed

keiro-dsl-0.6.0.0: test/conformance-scalar-expressions/ScalarExpressions/Domain.hs

{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}

module ScalarExpressions.Domain (Limits (..)) where

import Data.Aeson (FromJSON, ToJSON)
import Data.Proxy (Proxy)
import Data.Text (Text)
import GHC.Generics (Generic)
import Keiki.Shape (CanonicalTypeName (..))
import Numeric.Natural (Natural)

data Limits = Limits
    { minimum :: !Integer
    , ceiling :: !Natural
    }
    deriving stock (Eq, Generic, Show)
    deriving anyclass (FromJSON, ToJSON)

instance CanonicalTypeName Limits where
    canonicalTypeName :: Proxy Limits -> Text
    canonicalTypeName _ = "scalar-expressions.Limits.v1"