ble-0.2.0.0: src/Bluetooth/Internal/Serialize.hs
{-# LANGUAGE UndecidableInstances #-}
module Bluetooth.Internal.Serialize where
import qualified Data.ByteString as BS
import qualified Data.Serialize as S
import Bluetooth.Internal.Errors
encodeRead :: S.Serialize a => Handler a -> Handler BS.ByteString
encodeRead h = S.encode <$> h
encodeWrite :: (S.Serialize a)
=> (a -> Handler Bool) -> (BS.ByteString -> Handler Bool)
encodeWrite h v = case S.decode v of
Left _ -> errorFailed
Right v' -> h v'