Add type-safe synonyms of ‘toFilePath’
This helps to “double check” programmers' assumptions about what kind of path he is converting into ‘FilePath’. Without these synonyms it's possible to silently convert wrong type of path into ‘FilePath’.
This commit is contained in:
parent
733fa04ac3
commit
00fabad1f4
20
src/Path.hs
20
src/Path.hs
@ -31,6 +31,10 @@ module Path
|
|||||||
,dirname
|
,dirname
|
||||||
-- * Conversion
|
-- * Conversion
|
||||||
,toFilePath
|
,toFilePath
|
||||||
|
,fromAbsDir
|
||||||
|
,fromRelDir
|
||||||
|
,fromAbsFile
|
||||||
|
,fromRelFile
|
||||||
)
|
)
|
||||||
where
|
where
|
||||||
|
|
||||||
@ -203,6 +207,22 @@ mkRelFile s =
|
|||||||
toFilePath :: Path b t -> FilePath
|
toFilePath :: Path b t -> FilePath
|
||||||
toFilePath (Path l) = l
|
toFilePath (Path l) = l
|
||||||
|
|
||||||
|
-- | Convert absolute path to directory to 'FilePath' type.
|
||||||
|
fromAbsDir :: Path Abs Dir -> FilePath
|
||||||
|
fromAbsDir = toFilePath
|
||||||
|
|
||||||
|
-- | Convert relative path to directory to 'FilePath' type.
|
||||||
|
fromRelDir :: Path Rel Dir -> FilePath
|
||||||
|
fromRelDir = toFilePath
|
||||||
|
|
||||||
|
-- | Convert absolute path to file to 'FilePath' type.
|
||||||
|
fromAbsFile :: Path Abs File -> FilePath
|
||||||
|
fromAbsFile = toFilePath
|
||||||
|
|
||||||
|
-- | Convert relative path to file to 'FilePath' type.
|
||||||
|
fromRelFile :: Path Rel File -> FilePath
|
||||||
|
fromRelFile = toFilePath
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
-- Operations
|
-- Operations
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user