module Bytezap.Class where import Bytezap import Bytezap.Bytes qualified as W import Bytezap.Int qualified as W import Data.ByteString ( ByteString ) import Data.Word import Data.Int class Put a where put :: a -> Write instance Put Write where {-# INLINE put #-} put :: Write -> Write put = Write -> Write forall a. a -> a id instance Put ByteString where {-# INLINE put #-} put :: ByteString -> Write put = ByteString -> Write W.byteString instance Put Word8 where {-# INLINE put #-} put :: Word8 -> Write put = Word8 -> Write W.w8 instance Put Word16 where {-# INLINE put #-} put :: Word16 -> Write put = Word16 -> Write W.w16 instance Put Word32 where {-# INLINE put #-} put :: Word32 -> Write put = Word32 -> Write W.w32 instance Put Word64 where {-# INLINE put #-} put :: Word64 -> Write put = Word64 -> Write W.w64 instance Put Int8 where {-# INLINE put #-} put :: Int8 -> Write put = Int8 -> Write W.i8 instance Put Int16 where {-# INLINE put #-} put :: Int16 -> Write put = Int16 -> Write W.i16 instance Put Int32 where {-# INLINE put #-} put :: Int32 -> Write put = Int32 -> Write W.i32 instance Put Int64 where {-# INLINE put #-} put :: Int64 -> Write put = Int64 -> Write W.i64