Spec-Zone.ru › Haskell 9

Foreign.Ptr

Copyright (c) The FFI task force 2001
License BSD-style (see the file libraries/base/LICENSE)
Maintainer ffi@haskell.org
Stability provisional
Portability portable
Safe Haskell Safe
Language Haskell2010

Содержание

  • Указатели на данные
  • Указатели на функции
  • Целочисленные типы с потерей данных при преобразовании в указатели и обратно

Описание

Этот модуль предоставляет типизированные указатели на внешние данные. Он является частью интерфейса внешних функций (FFI) и обычно импортируется через модуль Foreign.

Указатели на данные

data Ptr a Source

Значение типа Ptr a представляет собой указатель на объект или массив объектов, которые могут быть преобразованы в значения Haskell типа a и обратно.

Тип a часто является экземпляром класса Storable, который предоставляет операции преобразования. Однако это не обязательно, и вы можете предоставить свои собственные операции для доступа к указателю. Например, вы можете написать небольшие внешние функции для получения или установки полей структуры C struct.

Экземпляры
Подробности об экземплярах
Generic1 (URec (Ptr ()) :: k -> Type) Source
Подробности об экземпляре

Определено в GHC.Internal.Generics

Связанные типы

type Rep1 (URec (Ptr ()) :: k -> Type)

Since: base-4.9.0.0

Подробности об экземпляре

Определено в GHC.Internal.Generics

type Rep1 (URec (Ptr ()) :: k -> Type) = D1 ('MetaData "URec" "GHC.Internal.Generics" "ghc-internal" 'False) (C1 ('MetaCons "UAddr" 'PrefixI 'True) (S1 ('MetaSel ('Just "uAddr#") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (UAddr :: k -> Type)))

Методы

from1 :: forall (a :: k). URec (Ptr ()) a -> Rep1 (URec (Ptr ()) :: k -> Type) a Source

to1 :: forall (a :: k). Rep1 (URec (Ptr ()) :: k -> Type) a -> URec (Ptr ()) a Source

Eq1 (UAddr :: Type -> Type) Source

Since: base-4.21.0.0

Подробности об экземпляре

Определено в Data.Functor.Classes

Методы

liftEq :: (a -> b -> Bool) -> UAddr a -> UAddr b -> Bool Source

Ord1 (UAddr :: Type -> Type) Source

Since: base-4.21.0.0

Подробности об экземпляре

Определено в Data.Functor.Classes

Методы

liftCompare :: (a -> b -> Ordering) -> UAddr a -> UAddr b -> Ordering Source

Show1 (UAddr :: Type -> Type) Source

Since: base-4.21.0.0

Подробности об экземпляре

Определено в Data.Functor.Classes

Методы

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> UAddr a -> ShowS Source

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [UAddr a] -> ShowS Source

Data a => Data (Ptr a) Source

Since: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Data

Методы

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Ptr a -> c (Ptr a) Исходный код

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Ptr a) Исходный код

toConstr :: Ptr a -> Constr Исходный код

dataTypeOf :: Ptr a -> DataType Исходный код

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Ptr a)) Исходный код

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Ptr a)) Исходный код

gmapT :: (forall b. Data b => b -> b) -> Ptr a -> Ptr a Исходный код

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Ptr a -> r Исходный код

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Ptr a -> r Исходный код

gmapQ :: (forall d. Data d => d -> u) -> Ptr a -> [u] Исходный код

gmapQi :: Int -> (forall d. Data d => d -> u) -> Ptr a -> u Исходный код

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Ptr a -> m (Ptr a) Исходный код

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Ptr a -> m (Ptr a) Исходный код

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Ptr a -> m (Ptr a) Исходный код

Foldable (UAddr :: Type -> Type) Исходный код

С момента: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Foldable

Методы

fold :: Monoid m => UAddr m -> m Исходный код

foldMap :: Monoid m => (a -> m) -> UAddr a -> m Исходный код

foldMap' :: Monoid m => (a -> m) -> UAddr a -> m Исходный код

foldr :: (a -> b -> b) -> b -> UAddr a -> b Исходный код

foldr' :: (a -> b -> b) -> b -> UAddr a -> b Исходный код

foldl :: (b -> a -> b) -> b -> UAddr a -> b Исходный код

foldl' :: (b -> a -> b) -> b -> UAddr a -> b Исходный код

foldr1 :: (a -> a -> a) -> UAddr a -> a Исходный код

foldl1 :: (a -> a -> a) -> UAddr a -> a Исходный код

toList :: UAddr a -> [a] Исходный код

null :: UAddr a -> Bool Исходный код

length :: UAddr a -> Int Исходный код

elem :: Eq a => a -> UAddr a -> Bool Исходный код

maximum :: Ord a => UAddr a -> a Исходный код

minimum :: Ord a => UAddr a -> a Исходный код

sum :: Num a => UAddr a -> a Исходный код

product :: Num a => UAddr a -> a Исходный код

Traversable (UAddr :: Тип -> Тип) Исходный код

С момента: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Traversable

Методы

traverse :: Applicative f => (a -> f b) -> UAddr a -> f (UAddr b) Исходный код

sequenceA :: Applicative f => UAddr (f a) -> f (UAddr a) Исходный код

mapM :: Monad m => (a -> m b) -> UAddr a -> m (UAddr b) Исходный код

sequence :: Monad m => UAddr (m a) -> m (UAddr a) Исходный код

Storable (Ptr a) Исходный код

С момента: base-2.1

Подробности экземпляра

Определено в GHC.Internal.Foreign.Storable

Методы

sizeOf :: Ptr a -> Int Исходный код

alignment :: Ptr a -> Int Исходный код

peekElemOff :: Ptr (Ptr a) -> Int -> IO (Ptr a) Исходный код

pokeElemOff :: Ptr (Ptr a) -> Int -> Ptr a -> IO () Исходный код

peekByteOff :: Ptr b -> Int -> IO (Ptr a) Исходный код

pokeByteOff :: Ptr b -> Int -> Ptr a -> IO () Исходный код

peek :: Ptr (Ptr a) -> IO (Ptr a) Исходный код

poke :: Ptr (Ptr a) -> Ptr a -> IO () Исходный код

Show (Ptr a) Исходный код

С версии: base-2.1

Подробности экземпляра

Определено в GHC.Internal.Ptr

Методы

showsPrec :: Int -> Ptr a -> ShowS Исходный код

show :: Ptr a -> String Исходный код

showList :: [Ptr a] -> ShowS Исходный код

Eq (Ptr a) Исходный код

С версии: base-2.1

Подробности экземпляра

Определено в GHC.Internal.Ptr

Методы

(==) :: Ptr a -> Ptr a -> Bool Исходный код

(/=) :: Ptr a -> Ptr a -> Bool Исходный код

Ord (Ptr a) Исходный код

С версии: base-2.1

Подробности экземпляра

Определено в GHC.Internal.Ptr

Методы

compare :: Ptr a -> Ptr a -> Ordering Исходный код

(<) :: Ptr a -> Ptr a -> Bool Исходный код

(<=) :: Ptr a -> Ptr a -> Bool Исходный код

(>) :: Ptr a -> Ptr a -> Bool Исходный код

(>=) :: Ptr a -> Ptr a -> Bool Исходный код

max :: Ptr a -> Ptr a -> Ptr a Исходный код

min :: Ptr a -> Ptr a -> Ptr a Исходный код

Functor (URec (Ptr ()) :: Type -> Type) Исходный код

С версии: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Generics

Методы

fmap :: (a -> b) -> URec (Ptr ()) a -> URec (Ptr ()) b Исходный код

(<$) :: a -> URec (Ptr ()) b -> URec (Ptr ()) a Исходный код

Show (UAddr p) Исходный код

С тех пор: base-4.21.0.0

Подробности экземпляра

Определено в GHC.Internal.Generics

Методы

showsPrec :: Int -> UAddr p -> ShowS Исходный код

show :: UAddr p -> String Исходный код

showList :: [UAddr p] -> ShowS Исходный код

Generic (URec (Ptr ()) p) Исходный код
Подробности экземпляра

Определено в GHC.Internal.Generics

Связанные типы

type Rep (URec (Ptr ()) p)

С тех пор: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Generics

type Rep (URec (Ptr ()) p) = D1 ('MetaData "URec" "GHC.Internal.Generics" "ghc-internal" 'False) (C1 ('MetaCons "UAddr" 'PrefixI 'True) (S1 ('MetaSel ('Just "uAddr#") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (UAddr :: Type -> Type)))

Методы

from :: URec (Ptr ()) p -> Rep (URec (Ptr ()) p) x Исходный код

to :: Rep (URec (Ptr ()) p) x -> URec (Ptr ()) p Исходный код

Eq (URec (Ptr ()) p) Исходный код

С тех пор: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Generics

Методы

(==) :: URec (Ptr ()) p -> URec (Ptr ()) p -> Bool Исходный код

(/=) :: URec (Ptr ()) p -> URec (Ptr ()) p -> Bool Исходный код

Ord (URec (Ptr ()) p) Исходный код

С тех пор: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Generics

Методы

compare :: URec (Ptr ()) p -> URec (Ptr ()) p -> Ordering Исходный код

(<) :: URec (Ptr ()) p -> URec (Ptr ()) p -> Bool Исходный код

(<=) :: URec (Ptr ()) p -> URec (Ptr ()) p -> Bool Исходный код

(>) :: URec (Ptr ()) p -> URec (Ptr ()) p -> Bool Исходный код

(>=) :: URec (Ptr ()) p -> URec (Ptr ()) p -> Bool Исходный код

max :: URec (Ptr ()) p -> URec (Ptr ()) p -> URec (Ptr ()) p Исходный код

min :: URec (Ptr ()) p -> URec (Ptr ()) p -> URec (Ptr ()) p Исходный код

data URec (Ptr ()) (p :: k) Исходный код

Используется для маркировки случаев Addr#

С момента: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Generics

data URec (Ptr ()) (p :: k) = UAddr {
  • uAddr# :: Addr#
}
type Rep1 (URec (Ptr ()) :: k -> Type) Исходный код

С момента: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Generics

type Rep1 (URec (Ptr ()) :: k -> Type) = D1 ('MetaData "URec" "GHC.Internal.Generics" "ghc-internal" 'False) (C1 ('MetaCons "UAddr" 'PrefixI 'True) (S1 ('MetaSel ('Just "uAddr#") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (UAddr :: k -> Type)))
type Rep (URec (Ptr ()) p) Исходный код

С момента: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Generics

type Rep (URec (Ptr ()) p) = D1 ('MetaData "URec" "GHC.Internal.Generics" "ghc-internal" 'False) (C1 ('MetaCons "UAddr" 'PrefixI 'True) (S1 ('MetaSel ('Just "uAddr#") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (UAddr :: Type -> Type)))

nullPtr :: Ptr a Исходный код

Константа nullPtr содержит выделенное значение Ptr, которое не связано с допустимой областью памяти.

castPtr :: Ptr a -> Ptr b Исходный код

Функция castPtr преобразует указатель из одного типа в другой.

plusPtr :: Ptr a -> Int -> Ptr b Исходный код

Перемещает заданный адрес на заданный смещение в байтах.

alignPtr :: Ptr a -> Int -> Ptr a Исходный код

Учитывая произвольный адрес и ограничение выравнивания, alignPtr возвращает следующий более высокий адрес, который удовлетворяет ограничению выравнивания. Ограничение выравнивания x выполняется для любого адреса, делящегося на x. Эта операция идемпотентна.

minusPtr :: Ptr a -> Ptr b -> Int Исходный код

Вычисляет смещение, необходимое для перехода от второго аргумента к первому. У нас есть

p2 == p1 `plusPtr` (p2 `minusPtr` p1)

Указатели на функции

data FunPtr a Источник

Значение типа FunPtr a является указателем на функцию, вызываемую из внешнего кода. Тип a обычно будет внешним типом, типом функции с нулем или более аргументами, где

  • типы аргументов являются маршалируемыми внешними типами, т.е. Char, Int, Double, Float, Bool, Int8, Int16, Int32, Int64, Word8, Word16, Word32, Word64, Ptr a, FunPtr a, StablePtr a или переименованием любого из них с помощью newtype.
  • тип возвращаемого значения является либо маршалируемым внешним типом, либо имеет вид IO t , где t является маршалируемым внешним типом или ().

Значение типа FunPtr a может быть указателем на внешнюю функцию, либо возвращенной другой внешней функцией, либо импортированной со статическим адресом, как

foreign import ccall "stdlib.h &free"
  p_free :: FunPtr (Ptr a -> IO ())

или указателем на функцию Haskell, созданной с использованием обертки, объявленной для создания FunPtr нужного типа. Например:

type Compare = Int -> Int -> Bool
foreign import ccall "wrapper"
  mkCompare :: Compare -> IO (FunPtr Compare)

Вызовы оберток, таких как mkCompare, выделяют память, которую следует освободить с помощью freeHaskellFunPtr, когда она больше не требуется.

Для преобразования значений FunPtr в соответствующие функции Haskell можно определить динамическую обертку для конкретного внешнего типа, например:

type IntFunction = CInt -> IO ()
foreign import ccall "dynamic"
  mkFun :: FunPtr IntFunction -> IntFunction
Примеры использования
Подробности примеров использования
Storable (FunPtr a) Исходный код

С момента: base-2.1

Подробности примера использования

Определено в GHC.Internal.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 () Исходный код

peek :: Ptr (FunPtr a) -> IO (FunPtr a) Исходный код

poke :: Ptr (FunPtr a) -> FunPtr a -> IO () Исходный код

Show (FunPtr a) Исходный код

С момента: base-2.1

Подробности примера использования

Определено в GHC.Internal.Ptr

Методы

showsPrec :: Int -> FunPtr a -> ShowS Исходный код

show :: FunPtr a -> Строка Исходный код

showList :: [FunPtr a] -> ShowS Исходный код

Eq (FunPtr a) Исходный код
Подробности примера использования

Определено в GHC.Internal.Ptr

Методы

(==) :: FunPtr a -> FunPtr a -> Булево Исходный код

(/=) :: FunPtr a -> FunPtr a -> Булево Исходный код

Ord (FunPtr a) Исходный код
Подробности примера использования

Определено в GHC.Internal.Ptr

Методы

compare :: FunPtr a -> FunPtr a -> Порядок Исходный код

(<) :: FunPtr a -> FunPtr a -> Булево Исходный код

(<=) :: FunPtr a -> FunPtr a -> Булево Исходный код

(>) :: FunPtr a -> FunPtr a -> Булево Исходный код

(>=) :: FunPtr a -> FunPtr a -> Булево Исходный код

max :: FunPtr a -> FunPtr a -> FunPtr a Исходный код

min :: FunPtr a -> FunPtr a -> FunPtr a Исходный код

nullFunPtr :: FunPtr a Исходный код

Константа nullFunPtr содержит выделенное значение FunPtr, которое не связано с действительным местом памяти.

castFunPtr :: FunPtr a -> FunPtr b Source

Преобразует FunPtr в FunPtr другого типа.

castFunPtrToPtr :: FunPtr a -> Ptr b Source

Преобразует FunPtr в Ptr.

Примечание: это допустимо только на архитектурах, где указатели данных и функций охватывают один и тот же набор адресов, и должно использоваться только для связывания с внешними библиотеками, интерфейс которых уже опирается на это предположение.

castPtrToFunPtr :: Ptr a -> FunPtr b Source

Преобразует Ptr в FunPtr.

Примечание: это допустимо только на архитектурах, где указатели данных и функций охватывают один и тот же набор адресов, и должно использоваться только для связывания с внешними библиотеками, интерфейс которых уже опирается на это предположение.

freeHaskellFunPtr :: FunPtr a -> IO () Source

Освобождает память, связанную с данным FunPtr, которая должна была быть получена из обертки-заглушки. Это необходимо вызывать всякий раз, когда значение возврата функции-обертки для внешнего импорта больше не требуется; в противном случае память будет утечкой.

Целочисленные типы с безнакладным преобразованием к указателям и из них

newtype IntPtr Source

Знаковый целочисленный тип, который можно безнакладно преобразовывать к указателям и из них. Этот тип также совместим с типом C99 intptr_t, и его можно безопасно маршаллировать в этот тип и из него.

Конструкторы

IntPtr Int
Экземпляры
Подробности о экземплярах
Bits IntPtr Источник
Подробности о экземпляре

Определено в GHC.Internal.Foreign.Ptr

Методы

(.&.) :: IntPtr -> IntPtr -> IntPtr Источник

(.|.) :: IntPtr -> IntPtr -> IntPtr Источник

xor :: IntPtr -> IntPtr -> IntPtr Источник

complement :: IntPtr -> IntPtr Источник

shift :: IntPtr -> Int -> IntPtr Источник

rotate :: IntPtr -> Int -> IntPtr Источник

zeroBits :: IntPtr Источник

bit :: Int -> IntPtr Источник

setBit :: IntPtr -> Int -> IntPtr Источник

clearBit :: IntPtr -> Int -> IntPtr Источник

complementBit :: IntPtr -> Int -> IntPtr Источник

testBit :: IntPtr -> Int -> Bool Источник

bitSizeMaybe :: IntPtr -> Maybe Int Источник

bitSize :: IntPtr -> Int Источник

isSigned :: IntPtr -> Bool Источник

shiftL :: IntPtr -> Int -> IntPtr Источник

unsafeShiftL :: IntPtr -> Int -> IntPtr Источник

shiftR :: IntPtr -> Int -> IntPtr Источник

unsafeShiftR :: IntPtr -> Int -> IntPtr Источник

rotateL :: IntPtr -> Int -> IntPtr Источник

rotateR :: IntPtr -> Int -> IntPtr Источник

popCount :: IntPtr -> Int Источник

FiniteBits IntPtr Источник
Подробности о экземпляре

Определено в GHC.Internal.Foreign.Ptr

Методы

finiteBitSize :: IntPtr -> Int Источник

countLeadingZeros :: IntPtr -> Int Источник

countTrailingZeros :: IntPtr -> Int Источник

Data IntPtr Источник

С версии: base-4.11.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Data

Методы

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> IntPtr -> c IntPtr Источник

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c IntPtr Источник

toConstr :: IntPtr -> Constr Источник

dataTypeOf :: IntPtr -> DataType Источник

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c IntPtr) Источник

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c IntPtr) Источник

gmapT :: (forall b. Data b => b -> b) -> IntPtr -> IntPtr Источник

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> IntPtr -> r Источник

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> IntPtr -> r Источник

gmapQ :: (forall d. Data d => d -> u) -> IntPtr -> [u] Источник

gmapQi :: Int -> (forall d. Data d => d -> u) -> IntPtr -> u Источник

gmapM :: Monad m => (forall d. Data d => d -> m d) -> IntPtr -> m IntPtr Источник

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> IntPtr -> m IntPtr Источник

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> IntPtr -> m IntPtr Источник

Bounded IntPtr Источник
Подробности экземпляра

Определено в GHC.Internal.Foreign.Ptr

Методы

minBound :: IntPtr Источник

maxBound :: IntPtr Источник

Enum IntPtr Источник
Подробности экземпляра

Определено в GHC.Internal.Foreign.Ptr

Методы

succ :: IntPtr -> IntPtr Источник

pred :: IntPtr -> IntPtr Источник

toEnum :: Int -> IntPtr Источник

fromEnum :: IntPtr -> Int Источник

enumFrom :: IntPtr -> [IntPtr] Источник

enumFromThen :: IntPtr -> IntPtr -> [IntPtr] Источник

enumFromTo :: IntPtr -> IntPtr -> [IntPtr] Источник

enumFromThenTo :: IntPtr -> IntPtr -> IntPtr -> [IntPtr] Источник

Storable IntPtr Source
Подробные сведения об экземпляре

Определено в GHC.Internal.Foreign.Ptr

Методы

sizeOf :: IntPtr -> Int Source

alignment :: IntPtr -> Int Source

peekElemOff :: Ptr IntPtr -> Int -> IO IntPtr Source

pokeElemOff :: Ptr IntPtr -> Int -> IntPtr -> IO () Source

peekByteOff :: Ptr b -> Int -> IO IntPtr Source

pokeByteOff :: Ptr b -> Int -> IntPtr -> IO () Source

peek :: Ptr IntPtr -> IO IntPtr Source

poke :: Ptr IntPtr -> IntPtr -> IO () Source

Ix IntPtr Source
Подробные сведения об экземпляре

Определено в GHC.Internal.Foreign.Ptr

Методы

range :: (IntPtr, IntPtr) -> [IntPtr] Source

index :: (IntPtr, IntPtr) -> IntPtr -> Int Source

unsafeIndex :: (IntPtr, IntPtr) -> IntPtr -> Int Source

inRange :: (IntPtr, IntPtr) -> IntPtr -> Bool Source

rangeSize :: (IntPtr, IntPtr) -> Int Source

unsafeRangeSize :: (IntPtr, IntPtr) -> Int Source

Num IntPtr Source
Подробные сведения об экземпляре

Определено в GHC.Internal.Foreign.Ptr

Методы

(+) :: IntPtr -> IntPtr -> IntPtr Source

(-) :: IntPtr -> IntPtr -> IntPtr Source

(*) :: IntPtr -> IntPtr -> IntPtr Source

negate :: IntPtr -> IntPtr Source

abs :: IntPtr -> IntPtr Source

signum :: IntPtr -> IntPtr Source

fromInteger :: Integer -> IntPtr Source

Read IntPtr Source
Подробные сведения об экземпляре

Определено в GHC.Internal.Foreign.Ptr

Методы

readsPrec :: Целое -> ReadS УказательIntPtr Исходный код

readList :: ReadS [УказательIntPtr] Исходный код

readPrec :: ReadPrec УказательIntPtr Исходный код

readListPrec :: ReadPrec [УказательIntPtr] Исходный код

Целочисленное УказательIntPtr Исходный код
Подробные сведения об экземпляре

Определено в GHC.Internal.Foreign.Ptr

Методы

quot :: УказательIntPtr -> УказательIntPtr -> УказательIntPtr Исходный код

rem :: УказательIntPtr -> УказательIntPtr -> УказательIntPtr Исходный код

div :: УказательIntPtr -> УказательIntPtr -> УказательIntPtr Исходный код

mod :: УказательIntPtr -> УказательIntPtr -> УказательIntPtr Исходный код

quotRem :: УказательIntPtr -> УказательIntPtr -> (УказательIntPtr, УказательIntPtr) Исходный код

divMod :: УказательIntPtr -> УказательIntPtr -> (УказательIntPtr, УказательIntPtr) Исходный код

toInteger :: УказательIntPtr -> Целое Исходный код

Действительное УказательIntPtr Исходный код
Подробные сведения об экземпляре

Определено в GHC.Internal.Foreign.Ptr

Методы

toRational :: УказательIntPtr -> Рациональное Исходный код

Вывод УказательIntPtr Исходный код
Подробные сведения об экземпляре

Определено в GHC.Internal.Foreign.Ptr

Методы

showsPrec :: Целое -> УказательIntPtr -> ShowS Исходный код

show :: УказательIntPtr -> Строка Исходный код

showList :: [УказательIntPtr] -> ShowS Исходный код

Равенство УказательIntPtr Исходный код
Подробные сведения об экземпляре

Определено в GHC.Internal.Foreign.Ptr

Методы

(==) :: УказательIntPtr -> УказательIntPtr -> Булево Исходный код

(/=) :: УказательIntPtr -> УказательIntPtr -> Булево Исходный код

Порядок УказательIntPtr Исходный код
Подробности экземпляра

Определено в GHC.Internal.Foreign.Ptr

Методы

compare :: IntPtr -> IntPtr -> Порядок Исходный код

(<) :: IntPtr -> IntPtr -> Булево Исходный код

(<=) :: IntPtr -> IntPtr -> Булево Исходный код

(>) :: IntPtr -> IntPtr -> Булево Исходный код

(>=) :: IntPtr -> IntPtr -> Булево Исходный код

max :: IntPtr -> IntPtr -> IntPtr Исходный код

min :: IntPtr -> IntPtr -> IntPtr Исходный код

ptrToIntPtr :: Указатель a -> IntPtr Исходный код

преобразует Ptr в IntPtr

intPtrToPtr :: IntPtr -> Указатель a Исходный код

преобразует IntPtr в Ptr

newtype WordPtr Исходный код

Беззнаковое целое число, которое может быть без потерь преобразовано в и из Ptr. Этот тип также совместим с типом C99 uintptr_t, и может быть безопасно связан с ним.

Конструкторы

WordPtr Целое без знака
Экземпляры
Подробности об экземплярах
Bits WordPtr Источник
Подробности об экземпляре

Определено в GHC.Internal.Foreign.Ptr

Методы

(.&.) :: WordPtr -> WordPtr -> WordPtr Источник

(.|.) :: WordPtr -> WordPtr -> WordPtr Источник

xor :: WordPtr -> WordPtr -> WordPtr Источник

complement :: WordPtr -> WordPtr Источник

shift :: WordPtr -> Int -> WordPtr Источник

rotate :: WordPtr -> Int -> WordPtr Источник

zeroBits :: WordPtr Источник

bit :: Int -> WordPtr Источник

setBit :: WordPtr -> Int -> WordPtr Источник

clearBit :: WordPtr -> Int -> WordPtr Источник

complementBit :: WordPtr -> Int -> WordPtr Источник

testBit :: WordPtr -> Int -> Bool Источник

bitSizeMaybe :: WordPtr -> Maybe Int Источник

bitSize :: WordPtr -> Int Источник

isSigned :: WordPtr -> Bool Источник

shiftL :: WordPtr -> Int -> WordPtr Источник

unsafeShiftL :: WordPtr -> Int -> WordPtr Источник

shiftR :: WordPtr -> Int -> WordPtr Источник

unsafeShiftR :: WordPtr -> Int -> WordPtr Источник

rotateL :: WordPtr -> Int -> WordPtr Источник

rotateR :: WordPtr -> Int -> WordPtr Источник

popCount :: WordPtr -> Int Источник

FiniteBits WordPtr Источник
Подробности об экземпляре

Определено в GHC.Internal.Foreign.Ptr

Методы

finiteBitSize :: WordPtr -> Int Источник

countLeadingZeros :: WordPtr -> Int Источник

countTrailingZeros :: WordPtr -> Int Источник

Data WordPtr Источник

С версии: base-4.11.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Data

Методы

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> WordPtr -> c WordPtr Исходный код

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c WordPtr Исходный код

toConstr :: WordPtr -> Constr Исходный код

dataTypeOf :: WordPtr -> DataType Исходный код

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c WordPtr) Исходный код

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c WordPtr) Исходный код

gmapT :: (forall b. Data b => b -> b) -> WordPtr -> WordPtr Исходный код

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> WordPtr -> r Исходный код

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> WordPtr -> r Исходный код

gmapQ :: (forall d. Data d => d -> u) -> WordPtr -> [u] Исходный код

gmapQi :: Int -> (forall d. Data d => d -> u) -> WordPtr -> u Исходный код

gmapM :: Monad m => (forall d. Data d => d -> m d) -> WordPtr -> m WordPtr Исходный код

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> WordPtr -> m WordPtr Исходный код

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> WordPtr -> m WordPtr Исходный код

Bounded WordPtr Исходный код
Подробности экземпляра

Определено в GHC.Internal.Foreign.Ptr

Методы

minBound :: WordPtr Исходный код

maxBound :: WordPtr Исходный код

Enum WordPtr Исходный код
Подробности экземпляра

Определено в GHC.Internal.Foreign.Ptr

Методы

succ :: WordPtr -> WordPtr Исходный код

pred :: WordPtr -> WordPtr Исходный код

toEnum :: Int -> WordPtr Исходный код

fromEnum :: WordPtr -> Int Исходный код

enumFrom :: WordPtr -> [WordPtr] Исходный код

enumFromThen :: WordPtr -> WordPtr -> [WordPtr] Исходный код

enumFromTo :: WordPtr -> WordPtr -> [WordPtr] Исходный код

enumFromThenTo :: WordPtr -> WordPtr -> WordPtr -> [WordPtr] Исходный код

Storable WordPtr Source
Подробные сведения об экземпляре

Определено в GHC.Internal.Foreign.Ptr

Методы

sizeOf :: WordPtr -> Int Source

alignment :: WordPtr -> Int Source

peekElemOff :: Ptr WordPtr -> Int -> IO WordPtr Source

pokeElemOff :: Ptr WordPtr -> Int -> WordPtr -> IO () Source

peekByteOff :: Ptr b -> Int -> IO WordPtr Source

pokeByteOff :: Ptr b -> Int -> WordPtr -> IO () Source

peek :: Ptr WordPtr -> IO WordPtr Source

poke :: Ptr WordPtr -> WordPtr -> IO () Source

Ix WordPtr Source
Подробные сведения об экземпляре

Определено в GHC.Internal.Foreign.Ptr

Методы

range :: (WordPtr, WordPtr) -> [WordPtr] Source

index :: (WordPtr, WordPtr) -> WordPtr -> Int Source

unsafeIndex :: (WordPtr, WordPtr) -> WordPtr -> Int Source

inRange :: (WordPtr, WordPtr) -> WordPtr -> Bool Source

rangeSize :: (WordPtr, WordPtr) -> Int Source

unsafeRangeSize :: (WordPtr, WordPtr) -> Int Source

Num WordPtr Source
Подробные сведения об экземпляре

Определено в GHC.Internal.Foreign.Ptr

Методы

(+) :: WordPtr -> WordPtr -> WordPtr Source

(-) :: WordPtr -> WordPtr -> WordPtr Source

(*) :: WordPtr -> WordPtr -> WordPtr Source

negate :: WordPtr -> WordPtr Source

abs :: WordPtr -> WordPtr Source

signum :: WordPtr -> WordPtr Source

fromInteger :: Integer -> WordPtr Source

Read WordPtr Source
Подробности экземпляра

Определено в GHC.Internal.Foreign.Ptr

Методы

readsPrec :: Int -> ReadS WordPtr Исходный код

readList :: ReadS [WordPtr] Исходный код

readPrec :: ReadPrec WordPtr Исходный код

readListPrec :: ReadPrec [WordPtr] Исходный код

Integral WordPtr Исходный код
Подробности экземпляра

Определено в GHC.Internal.Foreign.Ptr

Методы

quot :: WordPtr -> WordPtr -> WordPtr Исходный код

rem :: WordPtr -> WordPtr -> WordPtr Исходный код

div :: WordPtr -> WordPtr -> WordPtr Исходный код

mod :: WordPtr -> WordPtr -> WordPtr Исходный код

quotRem :: WordPtr -> WordPtr -> (WordPtr, WordPtr) Исходный код

divMod :: WordPtr -> WordPtr -> (WordPtr, WordPtr) Исходный код

toInteger :: WordPtr -> Integer Исходный код

Real WordPtr Исходный код
Подробности экземпляра

Определено в GHC.Internal.Foreign.Ptr

Методы

toRational :: WordPtr -> Rational Исходный код

Show WordPtr Исходный код
Подробности экземпляра

Определено в GHC.Internal.Foreign.Ptr

Методы

showsPrec :: Int -> WordPtr -> ShowS Исходный код

show :: WordPtr -> String Исходный код

showList :: [WordPtr] -> ShowS Исходный код

Eq WordPtr Исходный код
Подробности экземпляра

Определено в GHC.Internal.Foreign.Ptr

Методы

(==) :: WordPtr -> WordPtr -> Bool Исходный код

(/=) :: WordPtr -> WordPtr -> Bool Исходный код

Ord WordPtr Исходный код
Сведения об экземпляре

Определено в GHC.Internal.Foreign.Ptr

Методы

compare :: WordPtr -> WordPtr -> Порядок Исходный код

(<) :: WordPtr -> WordPtr -> Булево Исходный код

(<=) :: WordPtr -> WordPtr -> Булево Исходный код

(>) :: WordPtr -> WordPtr -> Булево Исходный код

(>=) :: WordPtr -> WordPtr -> Булево Исходный код

max :: WordPtr -> WordPtr -> WordPtr Исходный код

min :: WordPtr -> WordPtr -> WordPtr Исходный код

ptrToWordPtr :: Указатель a -> WordPtr Исходный код

преобразует Ptr в WordPtr

wordPtrToPtr :: WordPtr -> Указатель a Исходный код

преобразует WordPtr в Ptr

© 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/Foreign-Ptr.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API