Data.Binary.Построитель
| Авторские права | Леннарт Колмодин, Росс Патерсон |
|---|---|
| Лицензия | BSD3-style (см. LICENSE) |
| Поддержка | Леннарт Колмодин <kolmodin@gmail.com> |
| Устойчивость | экспериментальная |
| Портируемость | портируется в Hugs и GHC |
| Безопасный Haskell | Безопасный |
| Язык | Haskell98 |
Содержание
Описание
Эффективное создание ленивых битовых строк.
Тип Builder
data Builder Исходный код
Тип Builder является эффективным способом построения ленивых ByteString. Существуют различные функции для создания Builder , но только одна для их проверки: для извлечения данных необходимо преобразовать их в ленивые ByteString с помощью toLazyByteString.
Внутренне, Builder создает ленивую Bytestring путем заполнения массивов байтов по частям. По мере заполнения каждого буфера он «выталкивается», чтобы стать новым фрагментом получившейся ленивой ByteString. Все это скрыто от пользователя Builder.
toLazyByteString :: Builder -> ByteString Исходный код
O(n). Извлечь ленивую ByteString из Builder. Работа по построению выполняется тогда и только тогда, когда требуемая часть ленивой ByteString запрашивается.
Создание Builder
O(1). Пустой Builder, удовлетворяющий
singleton :: Word8 -> Builder Исходный код
O(1). Builder, принимающий один байт, удовлетворяющий
toLazyByteString(singletonb) =singletonb
append :: Builder -> Builder -> Builder Исходный код
O(1). Конкатенация двух Builder, ассоциативная операция с единицей empty, удовлетворяющая
toLazyByteString(appendx y) =append(toLazyByteStringx) (toLazyByteStringy)
fromByteString :: ByteString -> Builder Исходный код
O(1). Builder, принимающий ByteString, удовлетворяющий
toLazyByteString(fromByteStringbs) =fromChunks[bs]
fromLazyByteString :: ByteString -> Builder Исходный код
O(1). Builder, принимающий ленивую ByteString, удовлетворяющий
toLazyByteString(fromLazyByteStringbs) = bs
Очистка состояния буфера
O(1). Выталкивает ByteString , который был построен до сих пор, если таковой имеется, генерируя новый фрагмент в ленивой ByteString.
Производные билдеры
Запись в формате big-endian
putWord16be :: Word16 -> Builder Source
Записать Word16 в формате big endian
putWord32be :: Word32 -> Builder Source
Записать Word32 в формате big endian
putWord64be :: Word64 -> Builder Source
Записать Word64 в формате big endian
Запись в формате little-endian
putWord16le :: Word16 -> Builder Source
Записать Word16 в формате little endian
putWord32le :: Word32 -> Builder Source
Записать Word32 в формате little endian
putWord64le :: Word64 -> Builder Source
Записать Word64 в формате little endian
Запись в формате хост-эндиана, без выравнивания
putWordhost :: Word -> Builder Source
O(1). Бильдер, принимающий одно машинное слово. Слово записывается в порядке и формате хост-эндиана для текущей машины. На 64-битной машине слово — значение 8 байт, на 32-битной — 4 байта. Значения, записанные таким образом, не будут портативными для машин с другим порядком байтов или размером слова без преобразования.
putWord16host :: Word16 -> Builder Source
Записать Word16 в порядке и формате хост-эндиана. Будет записано 2 байта, без выравнивания.
putWord32host :: Word32 -> Builder Source
Записать Word32 в порядке и формате хост-эндиана. Будет записано 4 байта, без выравнивания.
putWord64host :: Word64 -> Builder Source
Записать Word64 в порядке хост-эндиана. На 32-битной машине мы запишем два Word32 в формате big endian. Будет записано 8 байт, без выравнивания.
Unicode
putCharUtf8 :: Char -> Builder Source
Записать символ в кодировке UTF-8.
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/7.10.3/docs/html/libraries/binary-0.7.5.0/Data-Binary-Builder.html