From: John Goerzen Date: Mon, 11 Aug 2008 10:57:15 +0000 (-0500) Subject: Added IMAPState to clean up readability X-Git-Url: https://code.delx.au/offlineimap/commitdiff_plain/3b5012bdd7866700e87b43523c2ed5a725ab9ed5?hp=ee3e234c2c5f876ed108bdb8f4f1e008b4df29eb Added IMAPState to clean up readability --- diff --git a/src/Network/IMAP/Connection.hs b/src/Network/IMAP/Connection.hs index bd1b454..17fd82f 100644 --- a/src/Network/IMAP/Connection.hs +++ b/src/Network/IMAP/Connection.hs @@ -22,6 +22,8 @@ import Control.Monad.State import Data.List.Utils(spanList) import Data.List(genericSplitAt, genericLength) +type IMAPState = State (IMAPString, IMAPString) + {- | Set up an IMAPConnection that runs in the State monad. The state is (bufferToClient, bufferFromClient) @@ -29,7 +31,7 @@ The state is (bufferToClient, bufferFromClient) Remember that EOL in IMAP protocols is \r\n! closeConnection is ignored with this monad. -} -newStringConnection :: IMAPConnection (State (IMAPString, IMAPString)) +newStringConnection :: IMAPConnection IMAPState newStringConnection = IMAPConnection {readBytes = lreadBytes, readLine = lreadLine, @@ -57,15 +59,9 @@ newStringConnection = {- | Runs a State monad with a String connection. Returns (retval, remainingBufferToClient, bufferFromClient) -} -{- -runStringConnection :: - IMAPString -> - ((State s a) -> a) -> - (a, IMAPString, IMAPString) --} runStringConnection :: IMAPString -- ^ Buffer to send to clients - -> (IMAPConnection (State (IMAPString, IMAPString)) -> State (IMAPString, IMAPString) a) -- ^ Function to run + -> (IMAPConnection IMAPState -> IMAPState a) -- ^ Function to run -> (a, (String, String)) -- ^ Results: func result, buffer status runStringConnection sbuf func = runState (func newStringConnection) (sbuf::String, []::String)