-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Slicing managed and unmanaged memory
--
-- This library provides types that allow the user to talk about a slice
-- of a ByteArray or a MutableByteArray. It also offers UnmanagedBytes,
-- which is kind of like a slice into unmanaged memory. However, it is
-- just an address and a length.
@package byteslice
@version 0.1.1.0
module Data.Bytes.Types
-- | A slice of a ByteArray.
data Bytes
Bytes :: {-# UNPACK #-} !ByteArray -> {-# UNPACK #-} !Int -> {-# UNPACK #-} !Int -> Bytes
[$sel:array:Bytes] :: Bytes -> {-# UNPACK #-} !ByteArray
[$sel:offset:Bytes] :: Bytes -> {-# UNPACK #-} !Int
[$sel:length:Bytes] :: Bytes -> {-# UNPACK #-} !Int
-- | A slice of a MutableByteArray.
data MutableBytes s
MutableBytes :: {-# UNPACK #-} !MutableByteArray s -> {-# UNPACK #-} !Int -> {-# UNPACK #-} !Int -> MutableBytes s
[$sel:array:MutableBytes] :: MutableBytes s -> {-# UNPACK #-} !MutableByteArray s
[$sel:offset:MutableBytes] :: MutableBytes s -> {-# UNPACK #-} !Int
[$sel:length:MutableBytes] :: MutableBytes s -> {-# UNPACK #-} !Int
-- | A slice of unmanaged memory.
data UnmanagedBytes
UnmanagedBytes :: {-# UNPACK #-} !Addr -> {-# UNPACK #-} !Int -> UnmanagedBytes
[$sel:address:UnmanagedBytes] :: UnmanagedBytes -> {-# UNPACK #-} !Addr
[$sel:length:UnmanagedBytes] :: UnmanagedBytes -> {-# UNPACK #-} !Int
instance GHC.Exts.IsList Data.Bytes.Types.Bytes
instance GHC.Show.Show Data.Bytes.Types.Bytes
instance GHC.Classes.Eq Data.Bytes.Types.Bytes
instance GHC.Classes.Ord Data.Bytes.Types.Bytes
instance GHC.Base.Semigroup Data.Bytes.Types.Bytes