module Data.Dwarf.Lens
( _DW_ATVAL_INT, _ATVAL_INT
, _DW_ATVAL_UINT, _ATVAL_UINT
, _DW_ATVAL_REF, _ATVAL_REF
, _DW_ATVAL_STRING, _ATVAL_STRING
, _DW_ATVAL_BLOB, _ATVAL_BLOB
, _DW_ATVAL_BOOL, _ATVAL_BOOL
, ATVAL_NamedPrism
) where
import Control.Lens (Getting)
import Control.Lens.TH (makePrisms)
import Data.Dwarf (DieID, DW_ATVAL)
import Data.Int (Int64)
import Data.Word (Word64)
import qualified Data.ByteString as BS
import qualified Data.Monoid as Monoid
type ATVAL_NamedPrism a = (String, Getting (Monoid.First a) DW_ATVAL a)
makePrisms ''DW_ATVAL
_ATVAL_INT :: ATVAL_NamedPrism Int64
_ATVAL_INT = ("ATVAL_INT", _DW_ATVAL_INT)
_ATVAL_UINT :: ATVAL_NamedPrism Word64
_ATVAL_UINT = ("ATVAL_UINT", _DW_ATVAL_UINT)
_ATVAL_REF :: ATVAL_NamedPrism DieID
_ATVAL_REF = ("ATVAL_REF", _DW_ATVAL_REF)
_ATVAL_STRING :: ATVAL_NamedPrism String
_ATVAL_STRING = ("ATVAL_STRING", _DW_ATVAL_STRING)
_ATVAL_BLOB :: ATVAL_NamedPrism BS.ByteString
_ATVAL_BLOB = ("ATVAL_BLOB", _DW_ATVAL_BLOB)
_ATVAL_BOOL :: ATVAL_NamedPrism Bool
_ATVAL_BOOL = ("ATVAL_BOOL", _DW_ATVAL_BOOL)