Skip to content

Commit

Permalink
Add conversions from Path to various strings
Browse files Browse the repository at this point in the history
  • Loading branch information
Blaisorblade committed Aug 12, 2016
1 parent 0bc1927 commit 26ffffc
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions src/Path/Extra.hs
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,15 @@ module Path.Extra
,parseCollapsedAbsFile
,rejectMissingFile
,rejectMissingDir
,pathToByteString
,pathToLazyByteString
,pathToText
) where

import qualified Data.ByteString.Lazy.Char8 as BSL
import qualified Data.ByteString.Char8 as BS
import qualified Data.Text as T
import qualified Data.Text.Encoding as T
import Control.Monad (liftM)
import Control.Monad.Catch
import Control.Monad.IO.Class
Expand Down Expand Up @@ -94,3 +101,14 @@ rejectMissingDir :: MonadIO m
-> m (Maybe (Path Abs Dir))
rejectMissingDir Nothing = return Nothing
rejectMissingDir (Just p) = bool Nothing (Just p) `liftM` doesDirExist p

-- | Convert to a lazy ByteString using toFilePath and UTF8.
pathToLazyByteString :: Path b t -> BSL.ByteString
pathToLazyByteString = BSL.fromStrict . pathToByteString

-- | Convert to a ByteString using toFilePath and UTF8.
pathToByteString :: Path b t -> BS.ByteString
pathToByteString = T.encodeUtf8 . pathToText

pathToText :: Path b t -> T.Text
pathToText = T.pack . toFilePath

0 comments on commit 26ffffc

Please sign in to comment.