{-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE PatternSynonyms #-} {-# LANGUAGE TypeSynonymInstances #-} module Data.SpirV.Enum.Dim where import Data.Word (Word32) import Foreign.Storable (Storable) newtype Dim = Dim Word32 deriving newtype (Eq, Ord, Storable) instance Show Dim where showsPrec p (Dim v) = case v of 0 -> showString "Dim1D" 1 -> showString "Dim2D" 2 -> showString "Dim3D" 3 -> showString "Cube" 4 -> showString "Rect" 5 -> showString "Buffer" 6 -> showString "SubpassData" 4173 -> showString "TileImageDataEXT" x -> showParen (p > 10) $ showString "Dim " . showsPrec (p + 1) x pattern Dim1D :: Dim pattern Dim1D = Dim 0 pattern Dim2D :: Dim pattern Dim2D = Dim 1 pattern Dim3D :: Dim pattern Dim3D = Dim 2 pattern Cube :: Dim pattern Cube = Dim 3 pattern Rect :: Dim pattern Rect = Dim 4 pattern Buffer :: Dim pattern Buffer = Dim 5 pattern SubpassData :: Dim pattern SubpassData = Dim 6 pattern TileImageDataEXT :: Dim pattern TileImageDataEXT = Dim 4173