-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Atomically write to a file
--   
--   Atomically write to a file on POSIX-compliant systems while preserving
--   permissions.
--   
--   On most Unix systems, <a>mv</a> is an atomic operation. This makes it
--   simple to write to a file atomically just by using the mv operation.
--   However, this will destroy the permissions on the original file. This
--   library does the following to preserve permissions while atomically
--   writing to a file:
--   
--   <ul>
--   <li>If an original file exists, take those permissions and apply them
--   to the temp file before <a>mv</a>ing the file into place.</li>
--   <li>If the original file does not exist, create a following with
--   default permissions (based on the currently-active umask).</li>
--   </ul>
--   
--   This way, when the file is <a>mv</a>'ed into place, the permissions
--   will be the ones held by the original file.
--   
--   This library is based on similar implementations found in common
--   libraries in Ruby and Python:
--   
--   <ul>
--   <li><a>Ruby on Rails includes a similar method called
--   atomic_write</a></li>
--   <li><a>Chef includes atomic update functionality</a></li>
--   <li><a>There is a python library for atomically updating a
--   file</a></li>
--   </ul>
--   
--   To use `atomic-write`, import the module corresponding to the type you
--   wish to write atomically, e.g., to write a (strict) ByteString
--   atomically:
--   
--   <pre>
--   import System.AtomicWrite.Writer.ByteString
--   </pre>
--   
--   Then you can use the atomicWriteFile function that accepts a
--   <a>FilePath</a> and a <a>ByteString</a>, e.g.:
--   
--   <pre>
--   atomicWriteFile myFilePath myByteString
--   </pre>
@package atomic-write
@version 0.2.0.7


-- | Provides functionality to dump the contents of a ByteString to a file
--   in text mode.
module System.AtomicWrite.Writer.ByteString

-- | Creates or modifies a file atomically on POSIX-compliant systems while
--   preserving permissions.
atomicWriteFile :: FilePath -> ByteString -> IO ()

-- | Creates or modifies a file atomically on POSIX-compliant systems and
--   updates permissions.
atomicWriteFileWithMode :: FileMode -> FilePath -> ByteString -> IO ()


-- | Provides functionality to dump the contents of a ByteString to a file
--   open in binary mode
module System.AtomicWrite.Writer.ByteString.Binary

-- | Creates or modifies a file atomically on POSIX-compliant systems while
--   preserving permissions. The file is opened in binary mode.
atomicWriteFile :: FilePath -> ByteString -> IO ()

-- | Creates or modifies a file atomically on POSIX-compliant systems and
--   updates permissions. The file is opened in binary mode.
atomicWriteFileWithMode :: FileMode -> FilePath -> ByteString -> IO ()


-- | Provides functionality to dump the contents of a ByteStringBuilder to
--   a file.
module System.AtomicWrite.Writer.ByteStringBuilder

-- | Creates or modifies a file atomically on POSIX-compliant systems while
--   preserving permissions.
atomicWriteFile :: FilePath -> Builder -> IO ()

-- | Creates or modifies a file atomically on POSIX-compliant systems and
--   updates permissions.
atomicWriteFileWithMode :: FileMode -> FilePath -> Builder -> IO ()


-- | Provides functionality to dump the contents of a Lazy ByteString to a
--   file.
module System.AtomicWrite.Writer.LazyByteString

-- | Creates or modifies a file atomically on POSIX-compliant systems while
--   preserving permissions.
atomicWriteFile :: FilePath -> ByteString -> IO ()

-- | Creates or modifies a file atomically on POSIX-compliant systems and
--   updates permissions
atomicWriteFileWithMode :: FileMode -> FilePath -> ByteString -> IO ()


-- | Provides functionality to dump the contents of a Lazy ByteString to a
--   file in binary mode.
module System.AtomicWrite.Writer.LazyByteString.Binary

-- | Creates or modifies a file atomically on POSIX-compliant systems while
--   preserving permissions.
atomicWriteFile :: FilePath -> ByteString -> IO ()

-- | Creates or modifies a file atomically on POSIX-compliant systems and
--   updates permissions
atomicWriteFileWithMode :: FileMode -> FilePath -> ByteString -> IO ()


-- | Provides functionality to dump the contents of a Text to a file.
module System.AtomicWrite.Writer.LazyText

-- | Creates a file atomically on POSIX-compliant systems while preserving
--   permissions.
atomicWriteFile :: FilePath -> Text -> IO ()

-- | Creates or modifies a file atomically on POSIX-compliant systems and
--   updates permissions
atomicWriteFileWithMode :: FileMode -> FilePath -> Text -> IO ()


-- | Provides functionality to dump the contents of a Text to a file in
--   binary mode.
module System.AtomicWrite.Writer.LazyText.Binary

-- | Creates a file atomically on POSIX-compliant systems while preserving
--   permissions.
atomicWriteFile :: FilePath -> Text -> IO ()

-- | Creates or modifies a file atomically on POSIX-compliant systems and
--   updates permissions
atomicWriteFileWithMode :: FileMode -> FilePath -> Text -> IO ()


-- | Provides functionality to dump the contents of a String to a file.
module System.AtomicWrite.Writer.String

-- | Creates or modifies a file atomically on POSIX-compliant systems while
--   preserving permissions.
atomicWriteFile :: FilePath -> String -> IO ()

-- | A general version of <a>atomicWriteFile</a>
atomicWithFile :: FilePath -> (Handle -> IO ()) -> IO ()

-- | Creates or modifies a file atomically on POSIX-compliant systems and
--   updates permissions
atomicWriteFileWithMode :: FileMode -> FilePath -> String -> IO ()

-- | A general version of <a>atomicWriteFileWithMode</a>
atomicWithFileAndMode :: FileMode -> FilePath -> (Handle -> IO ()) -> IO ()


-- | Provides functionality to dump the contents of a String to a file in
--   binary mode.
module System.AtomicWrite.Writer.String.Binary

-- | Creates or modifies a file atomically on POSIX-compliant systems while
--   preserving permissions.
atomicWriteFile :: FilePath -> String -> IO ()

-- | A general version of <a>atomicWriteFile</a>
atomicWithFile :: FilePath -> (Handle -> IO ()) -> IO ()

-- | Creates or modifies a file atomically on POSIX-compliant systems and
--   updates permissions
atomicWriteFileWithMode :: FileMode -> FilePath -> String -> IO ()

-- | A general version of <a>atomicWriteFileWithMode</a>
atomicWithFileAndMode :: FileMode -> FilePath -> (Handle -> IO ()) -> IO ()


-- | Provides functionality to dump the contents of a Text to a file.
module System.AtomicWrite.Writer.Text

-- | Creates a file atomically on POSIX-compliant systems while preserving
--   permissions.
atomicWriteFile :: FilePath -> Text -> IO ()

-- | Creates or modifies a file atomically on POSIX-compliant systems and
--   updates permissions
atomicWriteFileWithMode :: FileMode -> FilePath -> Text -> IO ()


-- | Provides functionality to dump the contents of a Text to a file in
--   binary mode.
module System.AtomicWrite.Writer.Text.Binary

-- | Creates a file atomically on POSIX-compliant systems while preserving
--   permissions.
atomicWriteFile :: FilePath -> Text -> IO ()

-- | Creates or modifies a file atomically on POSIX-compliant systems and
--   updates permissions
atomicWriteFileWithMode :: FileMode -> FilePath -> Text -> IO ()
