module Sound.OpenSoundControl.Coding (Coding(..) ) where
import qualified Data.ByteString as S
import qualified Data.ByteString.Lazy as B
import qualified Data.ByteString.Lazy.Char8 as C
import Sound.OpenSoundControl.Type (OSC)
import qualified Sound.OpenSoundControl.Coding.Decode.Binary as Binary
import qualified Sound.OpenSoundControl.Coding.Encode.Builder as Builder
class Coding a where
encodeOSC :: OSC -> a
decodeOSC :: a -> OSC
instance Coding S.ByteString where
encodeOSC = Builder.encodeOSC'
decodeOSC = Binary.decodeOSC'
instance Coding B.ByteString where
encodeOSC = Builder.encodeOSC
decodeOSC = Binary.decodeOSC
instance Coding String where
encodeOSC = C.unpack . encodeOSC
decodeOSC = decodeOSC . C.pack