ivory-examples-0.1.0.3: examples/BitDataTypes.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
module BitDataTypes where
import Ivory.Language
[ivory|
bitdata SPIBaud :: Bits 3
= spi_baud_div_2 as 0
| spi_baud_div_4 as 1
| spi_baud_div_8 as 2
| spi_baud_div_16 as 3
| spi_baud_div_32 as 4
| spi_baud_div_64 as 5
| spi_baud_div_128 as 6
| spi_baud_div_256 as 7
|]
-- | Examples from Ivory paper.
[ivory|
bitdata BaudRate :: Bits 2
= baud_9600 as 0b00
| baud_19200 as 0b01
| baud_38400 as 0b10
-- bit pattern 0b11 is invalid
|]