{-# LANGUAGE ImportQualifiedPost #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# OPTIONS_GHC -Wall -fno-warn-tabs #-}

module Language.SpirV.Internal where

import Data.String
import Data.ByteString qualified as BS

import Language.SpirV.ShaderKind

newtype S (sknd :: ShaderKind) = S BS.ByteString deriving (Int -> S sknd -> ShowS
[S sknd] -> ShowS
S sknd -> String
(Int -> S sknd -> ShowS)
-> (S sknd -> String) -> ([S sknd] -> ShowS) -> Show (S sknd)
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
forall (sknd :: ShaderKind). Int -> S sknd -> ShowS
forall (sknd :: ShaderKind). [S sknd] -> ShowS
forall (sknd :: ShaderKind). S sknd -> String
$cshowsPrec :: forall (sknd :: ShaderKind). Int -> S sknd -> ShowS
showsPrec :: Int -> S sknd -> ShowS
$cshow :: forall (sknd :: ShaderKind). S sknd -> String
show :: S sknd -> String
$cshowList :: forall (sknd :: ShaderKind). [S sknd] -> ShowS
showList :: [S sknd] -> ShowS
Show, String -> S sknd
(String -> S sknd) -> IsString (S sknd)
forall a. (String -> a) -> IsString a
forall (sknd :: ShaderKind). String -> S sknd
$cfromString :: forall (sknd :: ShaderKind). String -> S sknd
fromString :: String -> S sknd
IsString)

writeFile :: FilePath -> S sknd -> IO ()
writeFile :: forall (sknd :: ShaderKind). String -> S sknd -> IO ()
writeFile String
fp (S ByteString
bs) = String -> ByteString -> IO ()
BS.writeFile String
fp ByteString
bs