| License | BSD-style | 
|---|---|
| Maintainer | Haskell Foundation | 
| Stability | experimental | 
| Portability | portable | 
| Safe Haskell | None | 
| Language | Haskell2010 | 
Foundation.Class.Storable
Contents
Synopsis
- class Storable a where
 - class Storable a => StorableFixed a where
 - data Ptr a
 - plusPtr :: StorableFixed a => Ptr a -> CountOf a -> Ptr a
 - castPtr :: Ptr a -> Ptr b
 - peekOff :: StorableFixed a => Ptr a -> Offset a -> IO a
 - pokeOff :: StorableFixed a => Ptr a -> Offset a -> a -> IO ()
 - peekArray :: (Buildable col, StorableFixed (Element col)) => CountOf (Element col) -> Ptr (Element col) -> IO col
 - peekArrayEndedBy :: (Buildable col, StorableFixed (Element col), Eq (Element col), Show (Element col)) => Element col -> Ptr (Element col) -> IO col
 - pokeArray :: (Sequential col, StorableFixed (Element col)) => Ptr (Element col) -> col -> IO ()
 - pokeArrayEndedBy :: (Sequential col, StorableFixed (Element col)) => Element col -> Ptr (Element col) -> col -> IO ()
 
Documentation
class Storable a where Source #
Storable type of self determined size.
Instances
class Storable a => StorableFixed a where Source #
Extending the Storable type class to the types that can be sequenced in a structure.
Instances
Ptr
A value of type  represents a pointer to an object, or an
 array of objects, which may be marshalled to or from Haskell values
 of type Ptr aa.
The type a will often be an instance of class
 Storable which provides the marshalling operations.
 However this is not essential, and you can provide your own operations
 to access the pointer.  For example you might write small foreign
 functions to get or set the fields of a C struct.
Instances
| Generic1 (URec (Ptr ()) :: k -> Type) | |||||
Defined in GHC.Generics Associated Types 
  | |||||
| Data a => Data (Ptr a) | Since: base-4.8.0.0  | ||||
Defined in Data.Data Methods 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) # 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) | Since: base-4.9.0.0  | ||||
Defined in Data.Foldable Methods 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 # elem :: Eq a => a -> UAddr a -> Bool # maximum :: Ord a => UAddr a -> a # minimum :: Ord a => UAddr a -> a #  | |||||
| Traversable (UAddr :: Type -> Type) | Since: base-4.9.0.0  | ||||
| Storable (Ptr a) | Since: base-2.1  | ||||
| Show (Ptr a) | Since: base-2.1  | ||||
| NormalForm (Ptr a) | |||||
Defined in Basement.NormalForm Methods toNormalForm :: Ptr a -> () Source #  | |||||
| Storable (Ptr a) Source # | |||||
| StorableFixed (Ptr a) Source # | |||||
| Eq (Ptr a) | Since: base-2.1  | ||||
| Ord (Ptr a) | Since: base-2.1  | ||||
| Functor (URec (Ptr ()) :: Type -> Type) | Since: base-4.9.0.0  | ||||
| Generic (URec (Ptr ()) p) | |||||
Defined in GHC.Generics Associated Types 
  | |||||
| Eq (URec (Ptr ()) p) | Since: base-4.9.0.0  | ||||
| Ord (URec (Ptr ()) p) | Since: base-4.9.0.0  | ||||
Defined in GHC.Generics Methods 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) | Used for marking occurrences of  Since: base-4.9.0.0  | ||||
| type Rep1 (URec (Ptr ()) :: k -> Type) | Since: base-4.9.0.0  | ||||
Defined in GHC.Generics  | |||||
| type Rep (URec (Ptr ()) p) | Since: base-4.9.0.0  | ||||
Defined in GHC.Generics  | |||||
offset based helper
pokeOff :: StorableFixed a => Ptr a -> Offset a -> a -> IO () Source #
like poke but at a given offset.
Collection
peekArray :: (Buildable col, StorableFixed (Element col)) => CountOf (Element col) -> Ptr (Element col) -> IO col Source #
peekArrayEndedBy :: (Buildable col, StorableFixed (Element col), Eq (Element col), Show (Element col)) => Element col -> Ptr (Element col) -> IO col Source #
pokeArray :: (Sequential col, StorableFixed (Element col)) => Ptr (Element col) -> col -> IO () Source #
pokeArrayEndedBy :: (Sequential col, StorableFixed (Element col)) => Element col -> Ptr (Element col) -> col -> IO () Source #