<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-Type"content="text/html; charset=UTF-8"/><title>HSFM.FileSystem.UtilTypes</title><linkhref="ocean.css"rel="stylesheet"type="text/css"title="Ocean"/><scriptsrc="haddock-util.js"type="text/javascript"></script><scripttype="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_HSFM-FileSystem-UtilTypes.html");};
//]]>
</script></head><body><divid="package-header"><ulclass="links"id="page-menu"><li><ahref="src/HSFM-FileSystem-UtilTypes.html">Source</a></li><li><ahref="index.html">Contents</a></li><li><ahref="doc-index.html">Index</a></li></ul><pclass="caption">hsfm-gtk</p></div><divid="content"><divid="module-header"><tableclass="info"><tr><th>Safe Haskell</th><td>Safe</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><pclass="caption">HSFM.FileSystem.UtilTypes</p></div><divid="description"><pclass="caption">Description</p><divclass="doc"><p>This module provides high-level IO related file operations like
copy, delete, move and so on. It only operates on `Path Abs` which
guarantees us well-typed paths which are absolute.</p><p>Some functions are just path-safe wrappers around
unix functions, others have stricter exception handling
and some implement functionality that doesn't have a unix
counterpart (like <code>copyDirRecursive</code>).</p><p>Some of these operations are due to their nature not _atomic_, which
means they may do multiple syscalls which form one context. Some
of them also have to examine the filetypes explicitly before the
syscalls, so a reasonable decision can be made. That means
the result is undefined if another process changes that context
while the non-atomic operation is still happening. However, where
possible, as few syscalls as possible are used and the underlying
Useful to build up a list of operations or delay operations.</p></div><divclass="subs constructors"><pclass="caption">Constructors</p><table><tr><tdclass="src"><aname="v:FCopy"class="def">FCopy</a><ahref="HSFM-FileSystem-UtilTypes.html#t:Copy">Copy</a></td><tdclass="doc empty"> </td></tr><tr><tdclass="src"><aname="v:FMove"class="def">FMove</a><ahref="HSFM-FileSystem-UtilTypes.html#t:Move">Move</a></td><tdclass="doc empty"> </td></tr><tr><tdclass="src"><aname="v:FDelete"class="def">FDelete</a> [Path Abs]</td><tdclass="doc empty"> </td></tr><tr><tdclass="src"><aname="v:FOpen"class="def">FOpen</a> (Path Abs)</td><tdclass="doc empty"> </td></tr><tr><tdclass="src"><aname="v:FExecute"class="def">FExecute</a> (Path Abs) [<ahref="https://hackage.haskell.org/package/bytestring-0.10.6.0/docs/Data-ByteString.html#t:ByteString">ByteString</a>]</td><tdclass="doc empty"> </td></tr><tr><tdclass="src"><aname="v:None"class="def">None</a></td><tdclass="doc empty"> </td></tr></table></div></div><divclass="top"><pclass="src"><spanclass="keyword">data</span><aname="t:Copy"class="def">Copy</a><ahref="src/HSFM-FileSystem-UtilTypes.html#Copy"class="link">Source</a></p><divclass="doc"><p>Data type describing partial or complete file copy operation.</p></div><divclass="subs constructors"><pclass="caption">Constructors</p><table><tr><tdclass="src"><aname="v:PartialCopy"class="def">PartialCopy</a> [Path Abs]</td><tdclass="doc empty"> </td></tr><tr><tdclass="src"><aname="v:Copy"class="def">Copy</a> [Path Abs] (Path Abs)</td><tdclass="doc empty"> </td></tr></table></div></div><divclass="top"><pclass="src"><spanclass="keyword">data</span><aname="t:Move"class="def">Move</a><ahref="src/HSFM-FileSystem-UtilTypes.html#Move"class="link">Source</a></p><divclass="doc"><p>Data type describing partial or complete file move operation.</p></div><divclass="subs constructors"><pclass="caption">Constructors</p><table><tr><tdclass="src"><aname="v:PartialMove"class="def">PartialMove</a> [Path Abs]</td><tdclass="doc empty"> </td></tr><tr><tdclass="src"><aname="v:Move"class="def">Move</a> [Path Abs] (Path Abs)</td><tdclass="doc empty"> </td></tr></table></div></div><divclass="top"><pclass="src"><spanclass="keyword">data</span><aname="t:FCollisonMode"class="def">FCollisonMode</a><ahref="src/HSFM-FileSystem-UtilTypes.html#FCollisonMode"class="link">Source</a></p><divclass="doc"><p>Collision modes that describe the behavior in case a file collision
happens.</p></div><divclass="subs constructors"><pclass="caption">Constructors</p><table><tr><tdclass="src"><aname="v:Strict"class="def">Strict</a></td><tdclass="doc"><p>fail if the target already exists</p></td></tr><tr><tdclass="src"><aname="v:Overwrite"class="def">Overwrite</a></td><tdclass="doc empty"> </td></tr><tr><tdclass="src"><aname="v:OverwriteAll"class="def">OverwriteAll</a></td><tdclass="doc empty"> </td></tr><tr><tdclass="src"><aname="v:Skip"class="def">Skip</a></td><tdclass="doc empty"> </td></tr><tr><tdclass="src"><aname="v:Rename"class="def">Rename</a> (Path Fn)</td><tdclass="doc empty"> </td></tr></table></div></div></div></div><divid="footer"><p>Produced by <ahref="http://www.haskell.org/haddock/">Haddock</a> version 2.16.1</p></div></body></html>