packages feed

hs-bindgen-1.0.0.0: src-internal/HsBindgen/Test/Internal.hs

module HsBindgen.Test.Internal (
    -- * C function prefix
    CFunPrefix
  , getCFunPrefix
  ) where

import Data.Char qualified as Char
import Data.List qualified as List
import System.FilePath qualified as FilePath

{-------------------------------------------------------------------------------
  C function prefix
-------------------------------------------------------------------------------}

type CFunPrefix = String

getCFunPrefix ::
     FilePath  -- ^ C test header filename
  -> CFunPrefix
getCFunPrefix = List.map aux . FilePath.dropExtension
  where
    aux :: Char -> Char
    aux c
      | Char.isAlphaNum c = Char.toLower c
      | otherwise         = '_'