Data.Array.Byte
| Авторские права | (c) Роман Лещински 2009-2012 |
|---|---|
| Лицензия | BSD-стиль |
| Поддержка | libraries@haskell.org |
| Переносимость | непереносимая |
| Безопасный Haskell | Надёжная |
| Язык | Haskell2010 |
Описание
Выведено из пакета primitive.
Обёртывание типа ByteArray#.
Так как ByteArray# — это неподнятый тип и не является членом типа Type, выражения типа [ByteArray#] или IO ByteArray# некорректны. Чтобы обойти это неудобство, этот модуль предоставляет стандартное поднятое обёртывание, проживающее в Type. Клиенты должны использовать ByteArray в API более высокого уровня, но могут оборачивать и разворачивать 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# |
Экземпляры
| Monoid ByteArray Источник | С версии: base-4.17.0.0 |
| Semigroup ByteArray Источник | С версии: base-4.17.0.0 |
| Data ByteArray Источник | С версии: 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) -> ByteArray -> c ByteArray Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ByteArray Источник toConstr :: ByteArray -> Constr Источник dataTypeOf :: ByteArray -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ByteArray) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ByteArray) Источник gmapT :: (forall b. Data b => b -> b) -> ByteArray -> ByteArray Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ByteArray -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ByteArray -> r Источник gmapQ :: (forall d. Data d => d -> u) -> ByteArray -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> ByteArray -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> ByteArray -> m ByteArray Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ByteArray -> m ByteArray Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ByteArray -> m ByteArray Источник | |
| IsList ByteArray Источник | С версии: base-4.17.0.0 |
data MutableByteArray s Source
Поднятый обёрткий для MutableByteArray#.
Так как MutableByteArray# является неподнятым типом и не является членом рода Type, такие вещи, как [MutableByteArray#] или IO MutableByteArray#, имеют неверную типизацию. Чтобы обойти это неудобство, этот модуль предоставляет стандартный поднятый обёрткий, находящийся в Type. Ожидается, что клиенты будут использовать MutableByteArray в высокоуровневых API, но будут оборачивать и распаковывать MutableByteArray внутренне по своему усмотрению и использовать функции из GHC.Exts.
Since: base-4.17.0.0
Конструкторы
| MutableByteArray (MutableByteArray# s) |
Экземпляры
| Typeable s => Data (MutableByteArray s) Source | Since: 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) Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (MutableByteArray s) Source toConstr :: MutableByteArray s -> Constr Source dataTypeOf :: MutableByteArray s -> DataType Source dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (MutableByteArray s)) Source dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (MutableByteArray s)) Source gmapT :: (forall b. Data b => b -> b) -> MutableByteArray s -> MutableByteArray s Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> MutableByteArray s -> r Source gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> MutableByteArray s -> r Source gmapQ :: (forall d. Data d => d -> u) -> MutableByteArray s -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> MutableByteArray s -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> MutableByteArray s -> m (MutableByteArray s) Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> MutableByteArray s -> m (MutableByteArray s) Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> MutableByteArray s -> m (MutableByteArray s) Source | |
| Eq (MutableByteArray s) Source | Since: base-4.17.0.0 |
Определено в Data.Array.Byte Методы(==) :: MutableByteArray s -> MutableByteArray s -> Bool Source (/=) :: MutableByteArray s -> MutableByteArray s -> Bool Source | |
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.12.1/docs/libraries/base-4.21.0.0-8e62/Data-Array-Byte.html