A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://hackage.haskell.org/packages/archive/base/4.6.0.0/doc/html/GHC-IO-Buffer.html below:

GHC.IO.Buffer

Buffers of any element

data Buffer e Source

A mutable array of bytes that can be passed to foreign functions.

The buffer is represented by a record, where the record contains the raw buffer and the start/end points of the filled portion. The buffer contents itself is mutable, but the rest of the record is immutable. This is a slightly odd mix, but it turns out to be quite practical: by making all the buffer metadata immutable, we can have operations on buffer metadata outside of the IO monad.

The live elements of the buffer are those between the bufL and bufR offsets. In an empty buffer, bufL is equal to bufR, but they might not be zero: for exmaple, the buffer might correspond to a memory-mapped file and in which case bufL will point to the next location to be written, which is not necessarily the beginning of the file.

type CharBuffer = Buffer CharSource

type CharBufElem = CharSource

Creation

newByteBuffer :: Int -> BufferState -> IO (Buffer Word8)Source

newCharBuffer :: Int -> BufferState -> IO CharBufferSource

newBuffer :: Int -> Int -> BufferState -> IO (Buffer e)Source

emptyBuffer :: RawBuffer e -> Int -> BufferState -> Buffer eSource

Insertion/removal

bufferRemove :: Int -> Buffer e -> Buffer eSource

bufferAdd :: Int -> Buffer e -> Buffer eSource

bufferAdjustL :: Int -> Buffer e -> Buffer eSource

Inspecting

isEmptyBuffer :: Buffer e -> BoolSource

isFullBuffer :: Buffer e -> BoolSource

isFullCharBuffer :: Buffer e -> BoolSource

isWriteBuffer :: Buffer e -> BoolSource

bufferElems :: Buffer e -> IntSource

bufferAvailable :: Buffer e -> IntSource

summaryBuffer :: Buffer a -> StringSource

Operating on the raw buffer as a Ptr

withBuffer :: Buffer e -> (Ptr e -> IO a) -> IO aSource

withRawBuffer :: RawBuffer e -> (Ptr e -> IO a) -> IO aSource

Assertions

checkBuffer :: Buffer a -> IO ()Source

Raw buffers

type RawBuffer e = ForeignPtr eSource

readWord8Buf :: RawBuffer Word8 -> Int -> IO Word8Source

writeWord8Buf :: RawBuffer Word8 -> Int -> Word8 -> IO ()Source

type RawCharBuffer = RawBuffer CharBufElemSource

peekCharBuf :: RawCharBuffer -> Int -> IO CharSource

readCharBuf :: RawCharBuffer -> Int -> IO (Char, Int)Source

writeCharBuf :: RawCharBuffer -> Int -> Char -> IO IntSource

readCharBufPtr :: Ptr CharBufElem -> Int -> IO (Char, Int)Source

writeCharBufPtr :: Ptr CharBufElem -> Int -> Char -> IO IntSource

charSize :: IntSource


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4