Spec-Zone.ru › Haskell 9

Foreign.Ptr

Авторские права (c) The FFI task force 2001
Лицензия в стиле BSD (см. файл libraries/base/LICENSE)
Сопровождающий ffi@haskell.org
Стабильность предварительная
Переносимость переносимый
Безопасный Haskell Safe
Язык Haskell2010

Содержание

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

Описание

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

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

data Ptr a Источник

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

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

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

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

Ассоциированные типы

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)))

Методы

from1 :: forall (a :: k). URec (Ptr ()) a -> Rep1 (URec (Ptr ()) :: k -> Type) a Источник

to1 :: forall (a :: k). Rep1 (URec (Ptr ()) :: k -> Type) a -> URec (Ptr ()) a Источник

Eq1 (UAddr :: Type -> Type) Источник

Начиная с: base-4.21.0.0

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

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

Методы

liftEq :: (a -> b -> Bool) -> UAddr a -> UAddr b -> Bool Источник

Ord1 (UAddr :: Type -> Type) Источник

Начиная с: base-4.21.0.0

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

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

Методы

liftCompare :: (a -> b -> Ordering) -> UAddr a -> UAddr b -> Ordering Источник

Show1 (UAddr :: Type -> Type) Источник

Начиная с: base-4.21.0.0

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

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

Методы

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> UAddr a -> ShowS Источник

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [UAddr 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 Источник

Data a => Data (Ptr a) Источник

Начиная с: 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 :: Type -> Type) Источник

Начиная с: 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 Источник

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 Источник

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 Источник

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 Источник

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, созданную с помощью заглушки wrapper, объявленной для возврата FunPtr правильного типа. Например:

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

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

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

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

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

Методы

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

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

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

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

Методы

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

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

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

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

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

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

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

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 -> String Исходный код

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

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

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

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

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

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

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

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

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

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

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

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

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

Целочисленные типы с преобразованием указателей без потерь

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

Целочисленный тип со знаком, который можно без потерь преобразовывать в Ptr и обратно. Этот тип также совместим с типом 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 Исходный код

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

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

Методы

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

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

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

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

Методы

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

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

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

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

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

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

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

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 Исходный код
Подробности экземпляра

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

Методы

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

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

peekElemOff :: Ptr IntPtr -> Int -> IO IntPtr Источник

pokeElemOff :: Ptr IntPtr -> Int -> IntPtr -> IO () Источник

peekByteOff :: Ptr b -> Int -> IO IntPtr Источник

pokeByteOff :: Ptr b -> Int -> IntPtr -> IO () Источник

peek :: Ptr IntPtr -> IO IntPtr Источник

poke :: Ptr IntPtr -> IntPtr -> IO () Источник

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

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

Методы

range :: (IntPtr, IntPtr) -> [IntPtr] Источник

index :: (IntPtr, IntPtr) -> IntPtr -> Int Источник

unsafeIndex :: (IntPtr, IntPtr) -> IntPtr -> Int Источник

inRange :: (IntPtr, IntPtr) -> IntPtr -> Bool Источник

rangeSize :: (IntPtr, IntPtr) -> Int Источник

unsafeRangeSize :: (IntPtr, IntPtr) -> Int Источник

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

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

Методы

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

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

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

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

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

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

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

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

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

Методы

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

readList :: ReadS [IntPtr] Источник

readPrec :: ReadPrec IntPtr Источник

readListPrec :: ReadPrec [IntPtr] Источник

Integral 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 -> Integer Источник

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

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

Методы

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

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

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

Методы

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

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

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

ptrToIntPtr :: Ptr a -> IntPtr Источник

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

intPtrToPtr :: IntPtr -> Ptr a Источник

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

newtype WordPtr Источник

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

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

WordPtr Word
Экземпляры
Подробная информация об экземплярах
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 Исходный код

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

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

Методы

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

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

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

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

Методы

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

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

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

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

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

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

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

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 Исходный код
Подробности экземпляра

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

Методы

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

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

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

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

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

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

peek :: Ptr WordPtr -> IO WordPtr Исходный код

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

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

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

Методы

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

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

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

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

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

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

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

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

Методы

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

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

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

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

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

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

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

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

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

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 Исходный код

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

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

wordPtrToPtr :: WordPtr -> Ptr 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.14.1/docs/libraries/base-4.22.0.0-66f8/Foreign-Ptr.html

Spec-Zone.ru

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