hw-prelude 0.0.1.0 → 0.0.1.1
raw patch · 11 files changed
+72/−19 lines, 11 filesPVP: minor bump suggested
API additions: PVP suggests at least a minor version bump
API changes (from Hackage documentation)
+ HaskellWorks.FilePath: addExeSuffix :: String -> String
+ HaskellWorks.FilePath: exeSuffix :: String
+ HaskellWorks.OS: isWin32 :: Bool
+ HaskellWorks.Stack: callerModuleName :: HasCallStack => String
+ HaskellWorks.String: class ToString a
+ HaskellWorks.String: instance HaskellWorks.String.ToString Data.Text.Internal.Lazy.Text
+ HaskellWorks.String: instance HaskellWorks.String.ToString Data.Text.Internal.Text
+ HaskellWorks.String: instance HaskellWorks.String.ToString GHC.Base.String
+ HaskellWorks.String: toString :: ToString a => a -> String
Files
- hw-prelude.cabal +6/−1
- src/HaskellWorks/Error/Types.hs +0/−3
- src/HaskellWorks/Error/Types/GenericError.hs +0/−4
- src/HaskellWorks/Error/Types/TimedOut.hs +0/−4
- src/HaskellWorks/FilePath.hs +18/−0
- src/HaskellWorks/IO/Network/Port.hs +0/−2
- src/HaskellWorks/IO/Network/Socket.hs +0/−3
- src/HaskellWorks/IO/Win32/NamedPipe.hsc +1/−2
- src/HaskellWorks/OS.hs +12/−0
- src/HaskellWorks/Stack.hs +14/−0
- src/HaskellWorks/String.hs +21/−0
hw-prelude.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.4 name: hw-prelude-version: 0.0.1.0+version: 0.0.1.1 synopsis: Opinionated prelude library description: Opinionated prelude library. license: Apache-2.0@@ -53,6 +53,7 @@ FlexibleContexts FlexibleInstances LambdaCase+ MultiWayIf NoFieldSelectors NoImplicitPrelude OverloadedRecordDot@@ -93,11 +94,15 @@ HaskellWorks.Error.Types HaskellWorks.Error.Types.GenericError HaskellWorks.Error.Types.TimedOut+ HaskellWorks.FilePath HaskellWorks.IO.Network.NamedPipe HaskellWorks.IO.Network.Port HaskellWorks.IO.Network.Socket HaskellWorks.IO.Process+ HaskellWorks.OS HaskellWorks.Prelude+ HaskellWorks.Stack+ HaskellWorks.String HaskellWorks.ToText HaskellWorks.Unsafe hs-source-dirs: src
src/HaskellWorks/Error/Types.hs view
@@ -1,6 +1,3 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE TypeSynonymInstances #-}- module HaskellWorks.Error.Types ( GenericError (..), TimedOut(..),
src/HaskellWorks/Error/Types/GenericError.hs view
@@ -1,7 +1,3 @@-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE TypeSynonymInstances #-}- module HaskellWorks.Error.Types.GenericError ( GenericError (..), ) where
src/HaskellWorks/Error/Types/TimedOut.hs view
@@ -1,7 +1,3 @@-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE TypeSynonymInstances #-}- module HaskellWorks.Error.Types.TimedOut ( TimedOut (..), ) where
+ src/HaskellWorks/FilePath.hs view
@@ -0,0 +1,18 @@+module HaskellWorks.FilePath+ ( exeSuffix,+ addExeSuffix,+ ) where++import qualified HaskellWorks.OS as OS++import qualified Data.List as L+import Data.Monoid+import Data.String++exeSuffix :: String+exeSuffix = if OS.isWin32 then ".exe" else ""++addExeSuffix :: String -> String+addExeSuffix s = if ".exe" `L.isSuffixOf` s+ then s+ else s <> exeSuffix
src/HaskellWorks/IO/Network/Port.hs view
@@ -1,5 +1,3 @@-{-# LANGUAGE TypeApplications #-}- module HaskellWorks.IO.Network.Port ( randomPort, reserveRandomPort,
src/HaskellWorks/IO/Network/Socket.hs view
@@ -1,6 +1,3 @@-{-# LANGUAGE ScopedTypeVariables #-}-{-# LANGUAGE TypeApplications #-}- module HaskellWorks.IO.Network.Socket ( doesSocketExist, isPortOpen,
src/HaskellWorks/IO/Win32/NamedPipe.hsc view
@@ -1,8 +1,7 @@ #include <fcntl.h> #include <windows.h> -{-# LANGUAGE CPP #-}-{-# LANGUAGE MultiWayIf #-}+{-# LANGUAGE CPP #-} -- | For full details on the Windows named pipes API see -- <https://docs.microsoft.com/en-us/windows/desktop/ipc/named-pipes>
+ src/HaskellWorks/OS.hs view
@@ -0,0 +1,12 @@+module HaskellWorks.OS+ ( isWin32,+ ) where++import Data.Bool+import Data.Eq+import System.Info++-- | Determine if the operating system is Windows.+isWin32 :: Bool+isWin32 = os == "mingw32"+{-# INLINE isWin32 #-}
+ src/HaskellWorks/Stack.hs view
@@ -0,0 +1,14 @@+module HaskellWorks.Stack+ ( callerModuleName,+ ) where++import Data.Function+import Data.Maybe (listToMaybe, maybe)+import Data.String+import Data.Tuple+import GHC.Stack (HasCallStack, callStack, getCallStack,+ srcLocModule)++-- | Get the module name of the caller.+callerModuleName :: HasCallStack => String+callerModuleName = maybe "<no-module>" (srcLocModule . snd) (listToMaybe (getCallStack callStack))
+ src/HaskellWorks/String.hs view
@@ -0,0 +1,21 @@+module HaskellWorks.String+ ( ToString(..),+ ) where++import Data.Function+import Data.String+import Data.Text (Text)+import qualified Data.Text as T+import qualified Data.Text.Lazy as LT++class ToString a where+ toString :: a -> String++instance ToString String where+ toString = id++instance ToString Text where+ toString = T.unpack++instance ToString LT.Text where+ toString = LT.unpack