bind-marshal-0.1: src/Bind/Marshal/StdLib/Utils/Ser.hs
-- Copyright : (C) 2009 Corey O'Connor
-- License : BSD-style (see the file LICENSE)
{-# LANGUAGE ScopedTypeVariables #-}
module Bind.Marshal.StdLib.Utils.Ser where
import Bind.Marshal.Prelude
import Bind.Marshal.DataModel
import Bind.Marshal.SerAction.Static
import Bind.Marshal.StdLib.Ser
{-# INLINE ser_char_8 #-}
-- serialize an 8-bit byte from a Char. Assumes the Char truncates to 8 bits without loss of
-- representation.
#if RELEASE_BUILD
ser_char_8 :: forall m tRunState tModel.
( Word8 ~ NextSerType tS
) =>
SerAction tRunState tModel
tRunState' (DMApp tModel (SBUnit (StaticSerActionRep Word8)))
tS (StateAfterSer tS)
SerBuffer
#endif
ser_char_8 !( c :: Char ) = case fromIntegral $! fromEnum c of
!(v :: Word8) -> ser v