Foreign.Storable
| Copyright | (c) The FFI task force 2001 |
|---|---|
| License | see libraries/base/LICENSE |
| Maintainer | ffi@haskell.org |
| Stability | provisional |
| Portability | portable |
| Safe Haskell | Trustworthy |
| Language | Haskell2010 |
Описание
Модуль Foreign.Storable предоставляет базовые средства для маршалинга и является частью языконезависимой части Foreign Function Interface (FFI), и обычно импортируется через модуль Foreign.
class Storable a where Исходный код
Члены этого класса облегчают запись значений примитивных типов в сырую память (которая могла быть выделена с помощью вышеупомянутых процедур) и чтение значений из блоков сырой памяти. Кроме того, класс включает поддержку вычисления требований к хранению и ограничениям выравнивания для типов storable.
Адреса памяти представлены значениями типа Ptr a, для некоторого a, который является экземпляром класса Storable. Аргумент типа в Ptr помогает обеспечить некоторую ценную типовую безопасность в коде FFI (вы не можете смешивать указатели разных типов без явного приведения), помогая системе типов Haskell определить, какой метод маршалинга необходим для данного указателя.
Любой маршалинг между Haskell и иностранным языком в конечном итоге сводится к преобразованию структур данных Haskell в двоичное представление соответствующей структуры данных иностранного языка и наоборот. Для кодирования этого маршалинга в Haskell необходимо манипулировать примитивными типами данных, хранящимися в неупорядоченных блоках памяти. Класс Storable облегчает эту манипуляцию для всех типов, для которых он инстанцирован, включая стандартные базовые типы Haskell, типы фиксированной длины Int (Int8, Int16, Int32, Int64), типы фиксированной длины Word (Word8, Word16, Word32, Word64), StablePtr, все типы из Foreign.C.Types, а также Ptr.
Минимальное полное определение
sizeOf, alignment, (peek | peekElemOff | peekByteOff), (poke | pokeElemOff | pokeByteOff)
Методы
sizeOf :: a -> Int Исходный код
Вычисляет потребность в памяти (в байтах) аргумента. Значение аргумента не используется.
alignment :: a -> Int Исходный код
Вычисляет ограничение выравнивания аргумента. Ограничение выравнивания x выполняется для любого адреса, делящегося на x. Значение аргумента не используется.
peekElemOff :: Ptr a -> Int -> IO a Исходный код
Чтение значения из области памяти, рассматриваемой как массив значений одного типа. Первый аргумент указывает начальный адрес массива, а второй — индекс в массиве (первый элемент массива имеет индекс 0). Следующее равенство верно,
peekElemOff addr idx = IOExts.fixIO $ \result -> peek (addr `plusPtr` (idx * sizeOf result))
Обратите внимание, что это только спецификация, а не обязательно конкретная реализация функции.
pokeElemOff :: Ptr a -> Int -> a -> IO () Исходный код
Запись значения в область памяти, рассматриваемую как массив значений одного типа. Следующее равенство верно:
pokeElemOff addr idx x = poke (addr `plusPtr` (idx * sizeOf x)) x
peekByteOff :: Ptr b -> Int -> IO a Исходный код
Чтение значения из местоположения в памяти, заданного базовым адресом и смещением. Следующее равенство верно:
peekByteOff addr off = peek (addr `plusPtr` off)
pokeByteOff :: Ptr b -> Int -> a -> IO () Исходный код
Запись значения в местоположение в памяти, заданное базовым адресом и смещением. Следующее равенство верно:
pokeByteOff addr off x = poke (addr `plusPtr` off) x
peek :: Ptr a -> IO a Исходный код
Чтение значения из заданного местоположения в памяти.
Обратите внимание, что функции peek и poke могут потребовать правильно выровненных адресов для корректной работы. Это зависит от архитектуры; поэтому в переносимом коде необходимо гарантировать, что при чтении или записи значений некоторого типа a, ограничение выравнивания для a, как задано функцией alignment, выполняется.
poke :: Ptr a -> a -> IO () Исходный код
Запись заданного значения в заданное местоположение в памяти. Могут применяться ограничения выравнивания; см. peek.
Примеры
| Storable Bool | С версии: base-2.1 |
Определено в Foreign.Storable | |
| Storable Char | С версии: base-2.1 |
Определено в Foreign.Storable | |
| Storable Double | С версии: base-2.1 |
Определено в Foreign.Storable Краткое описание методовsizeOf :: Double -> Int Source alignment :: Double -> Int Source peekElemOff :: Ptr Double -> Int -> IO Double Source pokeElemOff :: Ptr Double -> Int -> Double -> IO () Source peekByteOff :: Ptr b -> Int -> IO Double Source pokeByteOff :: Ptr b -> Int -> Double -> IO () Source | |
| Storable Float | С версии: base-2.1 |
Определено в Foreign.Storable Краткое описание методовalignment :: Int16 -> Int Source peekElemOff :: Ptr Int16 -> Int -> IO Int16 Source pokeElemOff :: Ptr Int16 -> Int -> Int16 -> IO () Source peekByteOff :: Ptr b -> Int -> IO Int16 Source pokeByteOff :: Ptr b -> Int -> Int16 -> IO () Source | |
| Storable Int32 | С версии: base-2.1 |
Определено в Foreign.Storable Краткое описание методовalignment :: Int32 -> Int Source peekElemOff :: Ptr Int32 -> Int -> IO Int32 Source pokeElemOff :: Ptr Int32 -> Int -> Int32 -> IO () Source peekByteOff :: Ptr b -> Int -> IO Int32 Source pokeByteOff :: Ptr b -> Int -> Int32 -> IO () Source | |
| Storable Int64 | С версии: base-2.1 |
Определено в Foreign.Storable Краткое описание методовalignment :: Int64 -> Int Source peekElemOff :: Ptr Int64 -> Int -> IO Int64 Source pokeElemOff :: Ptr Int64 -> Int -> Int64 -> IO () Source peekByteOff :: Ptr b -> Int -> IO Int64 Source pokeByteOff :: Ptr b -> Int -> Int64 -> IO () Source | |
| Storable Word | С версии: base-2.1 |
Определено в Foreign.Storable Краткое описание методовsizeOf :: Word32 -> Int Source alignment :: Word32 -> Int Source peekElemOff :: Ptr Word32 -> Int -> IO Word32 Source pokeElemOff :: Ptr Word32 -> Int -> Word32 -> IO () Source peekByteOff :: Ptr b -> Int -> IO Word32 Source pokeByteOff :: Ptr b -> Int -> Word32 -> IO () Source | |
| Storable Word64 | С версии: base-2.1 |
Определено в Foreign.Storable Краткое описание методовsizeOf :: Word64 -> Int Source alignment :: Word64 -> Int Source peekElemOff :: Ptr Word64 -> Int -> IO Word64 Source pokeElemOff :: Ptr Word64 -> Int -> Word64 -> IO () Source peekByteOff :: Ptr b -> Int -> IO Word64 Source pokeByteOff :: Ptr b -> Int -> Word64 -> IO () Source | |
| Storable () | С версии: base-4.9.0.0 |
Определено в Foreign.Storable | |
| Storable Fingerprint | С версии: base-4.4.0.0 |
| Storable CUIntMax | |
Определено в Foreign.C.Types МетодыsizeOf :: CUIntMax -> Целое Источник alignment :: CUIntMax -> Целое Источник peekElemOff :: Указатель CUIntMax -> Целое -> IO CUIntMax Источник pokeElemOff :: Указатель CUIntMax -> Целое -> CUIntMax -> IO () Источник peekByteOff :: Указатель b -> Целое -> IO CUIntMax Источник pokeByteOff :: Указатель b -> Целое -> CUIntMax -> IO () Источник | |
| Storable CIntMax | |
Определено в Foreign.C.Types МетодыsizeOf :: CIntMax -> Целое Источник alignment :: CIntMax -> Целое Источник peekElemOff :: Указатель CIntMax -> Целое -> IO CIntMax Источник pokeElemOff :: Указатель CIntMax -> Целое -> CIntMax -> IO () Источник peekByteOff :: Указатель b -> Целое -> IO CIntMax Источник pokeByteOff :: Указатель b -> Целое -> CIntMax -> IO () Источник | |
| Storable CUIntPtr | |
Определено в Foreign.C.Types МетодыsizeOf :: CUIntPtr -> Int Исходный код alignment :: CUIntPtr -> Int Исходный код peekElemOff :: Ptr CUIntPtr -> Int -> IO CUIntPtr Исходный код pokeElemOff :: Ptr CUIntPtr -> Int -> CUIntPtr -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CUIntPtr Исходный код pokeByteOff :: Ptr b -> Int -> CUIntPtr -> IO () Исходный код | |
| Storable CIntPtr | |
Определено в Foreign.C.Types МетодыsizeOf :: CIntPtr -> Int Исходный код alignment :: CIntPtr -> Int Исходный код peekElemOff :: Ptr CIntPtr -> Int -> IO CIntPtr Исходный код pokeElemOff :: Ptr CIntPtr -> Int -> CIntPtr -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CIntPtr Исходный код pokeByteOff :: Ptr b -> Int -> CIntPtr -> IO () Исходный код | |
| Storable CSUSeconds | |
Определено в Foreign.C.Types МетодыsizeOf :: CSUSeconds -> Int Исходный код alignment :: CSUSeconds -> Int Исходный код peekElemOff :: Ptr CSUSeconds -> Int -> IO CSUSeconds Исходный код pokeElemOff :: Ptr CSUSeconds -> Int -> CSUSeconds -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CSUSeconds Исходный код pokeByteOff :: Ptr b -> Int -> CSUSeconds -> IO () Исходный код peek :: Ptr CSUSeconds -> IO CSUSeconds Исходный код poke :: Ptr CSUSeconds -> CSUSeconds -> IO () Исходный код | |
| Storable CUSeconds | |
Определено в Foreign.C.Types МетодыsizeOf :: CUSeconds -> Int Исходный код alignment :: CUSeconds -> Int Исходный код peekElemOff :: Ptr CUSeconds -> Int -> IO CUSeconds Исходный код pokeElemOff :: Ptr CUSeconds -> Int -> CUSeconds -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CUSeconds Исходный код pokeByteOff :: Ptr b -> Int -> CUSeconds -> IO () Исходный код | |
| Storable CTime | |
Определено в Foreign.C.Types МетодыsizeOf :: CTime -> Int Исходный код alignment :: CTime -> Int Исходный код peekElemOff :: Ptr CTime -> Int -> IO CTime Исходный код pokeElemOff :: Ptr CTime -> Int -> CTime -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CTime Исходный код pokeByteOff :: Ptr b -> Int -> CTime -> IO () Исходный код | |
| Storable CClock | |
Определено в Foreign.C.Types МетодыsizeOf :: CClock -> Int Исходный код alignment :: CClock -> Int Исходный код peekElemOff :: Ptr CClock -> Int -> IO CClock Исходный код pokeElemOff :: Ptr CClock -> Int -> CClock -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CClock Исходный код pokeByteOff :: Ptr b -> Int -> CClock -> IO () Исходный код | |
| Storable CSigAtomic | |
Определено в Foreign.C.Types МетодыsizeOf :: CSigAtomic -> Int Исходный код alignment :: CSigAtomic -> Int Исходный код peekElemOff :: Ptr CSigAtomic -> Int -> IO CSigAtomic Исходный код pokeElemOff :: Ptr CSigAtomic -> Int -> CSigAtomic -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CSigAtomic Исходный код pokeByteOff :: Ptr b -> Int -> CSigAtomic -> IO () Исходный код peek :: Ptr CSigAtomic -> IO CSigAtomic Исходный код poke :: Ptr CSigAtomic -> CSigAtomic -> IO () Исходный код | |
| Storable CWchar | |
Определено в Foreign.C.Types МетодыsizeOf :: CWchar -> Int Исходный код alignment :: CWchar -> Int Исходный код peekElemOff :: Ptr CWchar -> Int -> IO CWchar Исходный код pokeElemOff :: Ptr CWchar -> Int -> CWchar -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CWchar Исходный код pokeByteOff :: Ptr b -> Int -> CWchar -> IO () Исходный код | |
| Storable CSize | |
| Storable CFloat | |
Определено в Foreign.C.Types МетодыsizeOf :: CFloat -> Int Исходный код alignment :: CFloat -> Int Исходный код peekElemOff :: Ptr CFloat -> Int -> IO CFloat Исходный код pokeElemOff :: Ptr CFloat -> Int -> CFloat -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CFloat Исходный код pokeByteOff :: Ptr b -> Int -> CFloat -> IO () Исходный код | |
| Storable CBool | |
Определено в Foreign.C.Types МетодыsizeOf :: CBool -> Int Исходный код alignment :: CBool -> Int Исходный код peekElemOff :: Ptr CBool -> Int -> IO CBool Исходный код pokeElemOff :: Ptr CBool -> Int -> CBool -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CBool Исходный код pokeByteOff :: Ptr b -> Int -> CBool -> IO () Исходный код | |
| Storable CULLong | |
| Storable CLong | |
Определено в Foreign.C.Types МетодыsizeOf :: CLong -> Int Исходный код alignment :: CLong -> Int Исходный код peekElemOff :: Ptr CLong -> Int -> IO CLong Исходный код pokeElemOff :: Ptr CLong -> Int -> CLong -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CLong Исходный код pokeByteOff :: Ptr b -> Int -> CLong -> IO () Исходный код | |
| Storable CUInt | |
Определено в Foreign.C.Types МетодыsizeOf :: CUInt -> Int Исходный код alignment :: CUInt -> Int Исходный код peekElemOff :: Ptr CUInt -> Int -> IO CUInt Исходный код pokeElemOff :: Ptr CUInt -> Int -> CUInt -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CUInt Исходный код pokeByteOff :: Ptr b -> Int -> CUInt -> IO () Исходный код | |
| Storable CInt | |
Определено в Foreign.C.Types | |
| Storable CUShort | |
Определено в Foreign.C.Types Краткое описание методовsizeOf :: CUShort -> Int Source alignment :: CUShort -> Int Source peekElemOff :: Ptr CUShort -> Int -> IO CUShort Source pokeElemOff :: Ptr CUShort -> Int -> CUShort -> IO () Source peekByteOff :: Ptr b -> Int -> IO CUShort Source pokeByteOff :: Ptr b -> Int -> CUShort -> IO () Source | |
| Storable CShort | |
Определено в Foreign.C.Types Краткое описание методовsizeOf :: CShort -> Int Source alignment :: CShort -> Int Source peekElemOff :: Ptr CShort -> Int -> IO CShort Source pokeElemOff :: Ptr CShort -> Int -> CShort -> IO () Source peekByteOff :: Ptr b -> Int -> IO CShort Source pokeByteOff :: Ptr b -> Int -> CShort -> IO () Source | |
| Storable CUChar | |
Определено в Foreign.C.Types МетодыsizeOf :: CUChar -> Int Исходный код alignment :: CUChar -> Int Исходный код peekElemOff :: Ptr CUChar -> Int -> IO CUChar Исходный код pokeElemOff :: Ptr CUChar -> Int -> CUChar -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CUChar Исходный код pokeByteOff :: Ptr b -> Int -> CUChar -> IO () Исходный код | |
| Storable CSChar | |
Определено в Foreign.C.Types МетодыsizeOf :: CSChar -> Int Исходный код alignment :: CSChar -> Int Исходный код peekElemOff :: Ptr CSChar -> Int -> IO CSChar Исходный код pokeElemOff :: Ptr CSChar -> Int -> CSChar -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CSChar Исходный код pokeByteOff :: Ptr b -> Int -> CSChar -> IO () Исходный код | |
| Storable CChar | |
Определено в Foreign.C.Types Краткое описание методовalignment :: CChar -> Int Source peekElemOff :: Ptr CChar -> Int -> IO CChar Source pokeElemOff :: Ptr CChar -> Int -> CChar -> IO () Source peekByteOff :: Ptr b -> Int -> IO CChar Source pokeByteOff :: Ptr b -> Int -> CChar -> IO () Source | |
| Storable Fd | |
| Storable CNfds | |
Определено в System.Posix.Types Краткое описание методовalignment :: CNfds -> Int Source peekElemOff :: Ptr CNfds -> Int -> IO CNfds Source pokeElemOff :: Ptr CNfds -> Int -> CNfds -> IO () Source peekByteOff :: Ptr b -> Int -> IO CNfds Source pokeByteOff :: Ptr b -> Int -> CNfds -> IO () Source | |
| Storable CSocklen | |
Определено в System.Posix.Types МетодыsizeOf :: CSocklen -> Int Исходный код alignment :: CSocklen -> Int Исходный код peekElemOff :: Ptr CSocklen -> Int -> IO CSocklen Исходный код pokeElemOff :: Ptr CSocklen -> Int -> CSocklen -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CSocklen Исходный код pokeByteOff :: Ptr b -> Int -> CSocklen -> IO () Исходный код | |
| Storable CTimer | |
Определено в System.Posix.Types МетодыsizeOf :: CTimer -> Int Исходный код alignment :: CTimer -> Int Исходный код peekElemOff :: Ptr CTimer -> Int -> IO CTimer Исходный код pokeElemOff :: Ptr CTimer -> Int -> CTimer -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CTimer Исходный код pokeByteOff :: Ptr b -> Int -> CTimer -> IO () Исходный код | |
| Storable CKey | |
Определено в System.Posix.Types МетодыsizeOf :: CKey -> Int Исходный код alignment :: CKey -> Int Исходный код peekElemOff :: Ptr CKey -> Int -> IO CKey Исходный код pokeElemOff :: Ptr CKey -> Int -> CKey -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CKey Исходный код pokeByteOff :: Ptr b -> Int -> CKey -> IO () Исходный код | |
| Storable CId | |
Определено в System.Posix.Types МетодыsizeOf :: CId -> Int Исходный код alignment :: CId -> Int Исходный код peekElemOff :: Ptr CId -> Int -> IO CId Исходный код pokeElemOff :: Ptr CId -> Int -> CId -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CId Исходный код pokeByteOff :: Ptr b -> Int -> CId -> IO () Исходный код | |
| Storable CFsFilCnt | |
Определено в System.Posix.Types МетодыsizeOf :: CFsFilCnt -> Int Исходный код alignment :: CFsFilCnt -> Int Исходный код peekElemOff :: Ptr CFsFilCnt -> Int -> IO CFsFilCnt Исходный код pokeElemOff :: Ptr CFsFilCnt -> Int -> CFsFilCnt -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CFsFilCnt Исходный код pokeByteOff :: Ptr b -> Int -> CFsFilCnt -> IO () Исходный код | |
| Storable CFsBlkCnt | |
Определено в System.Posix.Types МетодыsizeOf :: CFsBlkCnt -> Int Исходный код alignment :: CFsBlkCnt -> Int Исходный код peekElemOff :: Ptr CFsBlkCnt -> Int -> IO CFsBlkCnt Исходный код pokeElemOff :: Ptr CFsBlkCnt -> Int -> CFsBlkCnt -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CFsBlkCnt Исходный код pokeByteOff :: Ptr b -> Int -> CFsBlkCnt -> IO () Исходный код | |
| Storable CClockId | |
Определено в System.Posix.Types МетодыsizeOf :: CClockId -> Int Исходный код alignment :: CClockId -> Int Исходный код peekElemOff :: Ptr CClockId -> Int -> IO CClockId Исходный код pokeElemOff :: Ptr CClockId -> Int -> CClockId -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CClockId Исходный код pokeByteOff :: Ptr b -> Int -> CClockId -> IO () Исходный код | |
| Storable CBlkCnt | |
Определено в System.Posix.Types МетодыsizeOf :: CBlkCnt -> Int Исходный код alignment :: CBlkCnt -> Int Исходный код peekElemOff :: Ptr CBlkCnt -> Int -> IO CBlkCnt Исходный код pokeElemOff :: Ptr CBlkCnt -> Int -> CBlkCnt -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CBlkCnt Исходный код pokeByteOff :: Ptr b -> Int -> CBlkCnt -> IO () Исходный код | |
| Storable CBlkSize | |
Определено в System.Posix.Types МетодыsizeOf :: CBlkSize -> Int Исходный код alignment :: CBlkSize -> Int Исходный код peekElemOff :: Ptr CBlkSize -> Int -> IO CBlkSize Исходный код pokeElemOff :: Ptr CBlkSize -> Int -> CBlkSize -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CBlkSize Исходный код pokeByteOff :: Ptr b -> Int -> CBlkSize -> IO () Исходный код | |
| Storable CRLim | |
Определено в System.Posix.Types МетодыsizeOf :: CRLim -> Int Исходный код alignment :: CRLim -> Int Исходный код peekElemOff :: Ptr CRLim -> Int -> IO CRLim Исходный код pokeElemOff :: Ptr CRLim -> Int -> CRLim -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CRLim Исходный код pokeByteOff :: Ptr b -> Int -> CRLim -> IO () Исходный код | |
| Storable CTcflag | |
Определено в System.Posix.Types МетодыsizeOf :: CTcflag -> Int Исходный код alignment :: CTcflag -> Int Исходный код peekElemOff :: Ptr CTcflag -> Int -> IO CTcflag Исходный код pokeElemOff :: Ptr CTcflag -> Int -> CTcflag -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CTcflag Исходный код pokeByteOff :: Ptr b -> Int -> CTcflag -> IO () Исходный код | |
| Storable CSpeed | |
Определено в System.Posix.Types МетодыsizeOf :: CSpeed -> Int Исходный код alignment :: CSpeed -> Int Исходный код peekElemOff :: Ptr CSpeed -> Int -> IO CSpeed Исходный код pokeElemOff :: Ptr CSpeed -> Int -> CSpeed -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CSpeed Исходный код pokeByteOff :: Ptr b -> Int -> CSpeed -> IO () Исходный код | |
| Storable CCc | |
Определено в System.Posix.Types МетодыsizeOf :: CCc -> Int Исходный код alignment :: CCc -> Int Исходный код peekElemOff :: Ptr CCc -> Int -> IO CCc Исходный код pokeElemOff :: Ptr CCc -> Int -> CCc -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CCc Исходный код pokeByteOff :: Ptr b -> Int -> CCc -> IO () Исходный код | |
| Storable CUid | |
Определено в System.Posix.Types МетодыsizeOf :: CUid -> Int Исходный код alignment :: CUid -> Int Исходный код peekElemOff :: Ptr CUid -> Int -> IO CUid Исходный код pokeElemOff :: Ptr CUid -> Int -> CUid -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CUid Исходный код pokeByteOff :: Ptr b -> Int -> CUid -> IO () Исходный код | |
| Storable CNlink | |
Определено в System.Posix.Types МетодыsizeOf :: CNlink -> Int Исходный код alignment :: CNlink -> Int Исходный код peekElemOff :: Ptr CNlink -> Int -> IO CNlink Исходный код pokeElemOff :: Ptr CNlink -> Int -> CNlink -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CNlink Исходный код pokeByteOff :: Ptr b -> Int -> CNlink -> IO () Исходный код | |
| Storable CGid | |
Определено в System.Posix.Types МетодыsizeOf :: CGid -> Int Исходный код alignment :: CGid -> Int Исходный код peekElemOff :: Ptr CGid -> Int -> IO CGid Исходный код pokeElemOff :: Ptr CGid -> Int -> CGid -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CGid Исходный код pokeByteOff :: Ptr b -> Int -> CGid -> IO () Исходный код | |
| Storable CSsize | |
Определено в System.Posix.Types МетодыsizeOf :: CSsize -> Int Исходный код alignment :: CSsize -> Int Исходный код peekElemOff :: Ptr CSsize -> Int -> IO CSsize Исходный код pokeElemOff :: Ptr CSsize -> Int -> CSsize -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CSsize Исходный код pokeByteOff :: Ptr b -> Int -> CSsize -> IO () Исходный код | |
| Storable CPid | |
Определено в System.Posix.Types МетодыsizeOf :: CPid -> Int Исходный код alignment :: CPid -> Int Исходный код peekElemOff :: Ptr CPid -> Int -> IO CPid Исходный код pokeElemOff :: Ptr CPid -> Int -> CPid -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CPid Исходный код pokeByteOff :: Ptr b -> Int -> CPid -> IO () Исходный код | |
| Storable COff | |
Определено в System.Posix.Types МетодыsizeOf :: COff -> Int Исходный код alignment :: COff -> Int Исходный код peekElemOff :: Ptr COff -> Int -> IO COff Исходный код pokeElemOff :: Ptr COff -> Int -> COff -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO COff Исходный код pokeByteOff :: Ptr b -> Int -> COff -> IO () Исходный код | |
| Storable CMode | |
Определено в System.Posix.Types МетодыsizeOf :: CMode -> Int Исходный код alignment :: CMode -> Int Исходный код peekElemOff :: Ptr CMode -> Int -> IO CMode Исходный код pokeElemOff :: Ptr CMode -> Int -> CMode -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CMode Исходный код pokeByteOff :: Ptr b -> Int -> CMode -> IO () Исходный код | |
| Storable CIno | |
Определено в System.Posix.Types МетодыsizeOf :: CIno -> Int Исходный код alignment :: CIno -> Int Исходный код peekElemOff :: Ptr CIno -> Int -> IO CIno Исходный код pokeElemOff :: Ptr CIno -> Int -> CIno -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CIno Исходный код pokeByteOff :: Ptr b -> Int -> CIno -> IO () Исходный код | |
| Storable CDev | |
Определено в System.Posix.Types МетодыsizeOf :: CDev -> Int Исходный код alignment :: CDev -> Int Исходный код peekElemOff :: Ptr CDev -> Int -> IO CDev Исходный код pokeElemOff :: Ptr CDev -> Int -> CDev -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO CDev Исходный код pokeByteOff :: Ptr b -> Int -> CDev -> IO () Исходный код | |
| (Storable a, Integral a) => Storable (Ratio a) | Since: base-4.8.0.0 |
| Storable (FunPtr a) | Since: base-2.1 |
Определено в Foreign.Storable МетодыsizeOf :: FunPtr a -> Int Источник alignment :: FunPtr a -> Int Источник peekElemOff :: Ptr (FunPtr a) -> Int -> IO (FunPtr a) Источник pokeElemOff :: Ptr (FunPtr a) -> Int -> FunPtr a -> IO () Источник peekByteOff :: Ptr b -> Int -> IO (FunPtr a) Источник pokeByteOff :: Ptr b -> Int -> FunPtr a -> IO () Источник | |
| Storable a => Storable (Down a) | Since: base-4.14.0.0 |
Определено в Data.Ord МетодыsizeOf :: Down a -> Int Источник alignment :: Down a -> Int Источник peekElemOff :: Ptr (Down a) -> Int -> IO (Down a) Источник pokeElemOff :: Ptr (Down a) -> Int -> Down a -> IO () Источник peekByteOff :: Ptr b -> Int -> IO (Down a) Источник pokeByteOff :: Ptr b -> Int -> Down a -> IO () Источник | |
| Storable a => Storable (Identity a) | Since: base-4.9.0.0 |
Определено в Data.Functor.Identity МетодыsizeOf :: Identity a -> Int Источник alignment :: Identity a -> Int Источник peekElemOff :: Ptr (Identity a) -> Int -> IO (Identity a) Источник pokeElemOff :: Ptr (Identity a) -> Int -> Identity a -> IO () Источник peekByteOff :: Ptr b -> Int -> IO (Identity a) Источник pokeByteOff :: Ptr b -> Int -> Identity a -> IO () Источник | |
| Storable a => Storable (Complex a) | С момента: base-4.8.0.0 |
Определено в Data.Complex МетодыsizeOf :: Complex a -> Int Источник alignment :: Complex a -> Int Источник peekElemOff :: Ptr (Complex a) -> Int -> IO (Complex a) Источник pokeElemOff :: Ptr (Complex a) -> Int -> Complex a -> IO () Источник peekByteOff :: Ptr b -> Int -> IO (Complex a) Источник pokeByteOff :: Ptr b -> Int -> Complex a -> IO () Источник | |
| Storable a => Storable (Const a b) | С момента: base-4.9.0.0 |
Определено в Data.Functor.Const МетодыsizeOf :: Const a b -> Int Исходный код alignment :: Const a b -> Int Исходный код peekElemOff :: Ptr (Const a b) -> Int -> IO (Const a b) Исходный код pokeElemOff :: Ptr (Const a b) -> Int -> Const a b -> IO () Исходный код peekByteOff :: Ptr b0 -> Int -> IO (Const a b) Исходный код pokeByteOff :: Ptr b0 -> Int -> Const a b -> IO () Исходный код |
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/8.10.2/docs/html/libraries/base-4.14.1.0/Foreign-Storable.html