Data.Array.Byte
| Авторские права | (c) Roman Leshchinskiy 2009-2012 |
|---|---|
| Лицензия | BSD-style |
| Сопровождающий | libraries@haskell.org |
| Переносимость | непереносимый |
| Безопасность Haskell | Trustworthy |
| Язык | Haskell2010 |
Описание
Производный от пакета primitive.
data ByteArray Исходный код
Обёртка с поднятым типом для ByteArray#.
Поскольку ByteArray# — тип без поднятия и не является членом рода Type, такие выражения, как [ByteArray#] или IO ByteArray#, имеют некорректные типы. Чтобы обойти это неудобство, данный модуль предоставляет стандартную обёртку с поднятым типом, принадлежащую Type. Предполагается, что в API более высокого уровня клиенты будут использовать ByteArray, а внутри оборачивать и разворачивать ByteArray по своему усмотрению и использовать функции из GHC.Exts.
Представление ByteArray в памяти:
╭─────────────┬───╮ ╭────────┬──────┬─────────╮ │ Constructor │ * ┼─►│ Header │ Size │ Payload │ ╰─────────────┴───╯ ╰────────┴──────┴─────────╯
Его накладные расходы составляют:
-
ByteArrayконструктор: 1 слово - Указатель на
ByteArray#: 1 слово -
ByteArray#заголовок: 1 слово -
ByteArray#размер: 1 слово
Слово — это единица выделения памяти в куче; его размер составляет 8 байт в 64-разрядных системах и 4 байта в 32-разрядных системах.
Начиная с: base-4.17.0.0
Конструкторы
| ByteArray ByteArray# |
Экземпляры
data MutableByteArray s Исходный код
Обёртка с поднятым типом для MutableByteArray#.
Поскольку MutableByteArray# — тип без поднятия и не является членом рода Type, такие выражения, как [MutableByteArray#] или IO MutableByteArray#, имеют некорректные типы. Чтобы обойти это неудобство, данный модуль предоставляет стандартную обёртку с поднятым типом, принадлежащую Type. Предполагается, что в API более высокого уровня клиенты будут использовать MutableByteArray, а внутри оборачивать и разворачивать MutableByteArray по своему усмотрению и использовать функции из GHC.Exts.
Начиная с: base-4.17.0.0
Конструкторы
| MutableByteArray (MutableByteArray# s) |
Экземпляры
| Eq (MutableByteArray s) Источник | Начиная с: base-4.17.0.0 |
Определён в Data.Array.Byte Методы(==) :: MutableByteArray s -> MutableByteArray s -> Bool Источник (/=) :: MutableByteArray s -> MutableByteArray s -> Bool Источник | |
| Typeable s => Data (MutableByteArray s) Источник | Начиная с: base-4.17.0.0 |
Определён в Data.Array.Byte Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> MutableByteArray s -> c (MutableByteArray s) Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (MutableByteArray s) Источник toConstr :: MutableByteArray s -> Constr Источник dataTypeOf :: MutableByteArray s -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (MutableByteArray s)) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (MutableByteArray s)) Источник gmapT :: (forall b. Data b => b -> b) -> MutableByteArray s -> MutableByteArray s Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> MutableByteArray s -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> MutableByteArray s -> r Источник gmapQ :: (forall d. Data d => d -> u) -> MutableByteArray s -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> MutableByteArray s -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> MutableByteArray s -> m (MutableByteArray s) Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> MutableByteArray s -> m (MutableByteArray s) Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> MutableByteArray s -> m (MutableByteArray s) Источник | |
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.14.1/docs/libraries/base-4.22.0.0-66f8/Data-Array-Byte.html