HORIZON HASKELLDocslts/ghc-9.10.xc74966e2026-09-27Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · c74966e · 2026-09-27

Modulehosc-0.20Haskell2010

Sound.Osc.Text

A simple and unambigous text encoding for Osc.

  • 2 types
  • 32 values
  • Packagehosc-0.20
  • Exports34
  • LanguageHaskell2010
  • LicenceGPL-3.0-only
  • SourceText.hs
valueshowBytes :: [Int] -> String
#

Hex encoded byte sequence.

showBytes [0, 15, 16, 144, 255] == "000f1090ff"
valueescapeString :: String -> String
#

Escape whites space (space, tab, newline) and the escape character (backslash).

mapM_ (putStrLn .  escapeString) ["str", "str ", "st r", "s\tr", "s\\tr", "\nstr"]
valueshowDatum :: FpPrecision -> Datum -> String
#

Printer for Datum.

aDatumSeq = [Int32 1,Float 1.2,string "str",midi (0,0x90,0x40,0x60),blob [12,16], TimeStamp 100.0]
map (showDatum (Just 5)) aDatumSeq == ["1","1.2","str","00904060","0c10","429496729600"]

Printer for Message.

aMessage = Message "/addr" [Int32 1, Int64 2, Float 3, Double 4, string "five", blob [6, 7], midi (8, 9, 10, 11)]
showMessage (Just 4) aMessage
aMessageSeq = [Message "/c_set" [Int32 1, Float 2.3], Message "/s_new" [string "sine", Int32 (-1), Int32 1, Int32 1]]
map (showMessage (Just 4)) aMessageSeq

Printer for Bundle

aBundle = Bundle 1 [Message "/c_set" [Int32 1, Float 2.3, Int64 4, Double 5.6], Message "/memset" [string "addr", blob [7, 8]]]
showBundle (Just 4) aBundle

Parser

26 declarations
typetype P a = GenParser Char () a
#

A character parser with no user state.

value(>>~) :: Monad m => m t -> m u -> m t
#

Run p then q, returning result of p.

valuelexemeP :: P t -> P t
#

p as lexeme, i.e. consuming any trailing white space.

valueparseDatum :: Char -> String -> Datum
#

Run datum parser.

parseDatum 'i' "-1" == Int32 (-1)
parseDatum 'f' "-2.3" == Float (-2.3)
valueparseMessage :: String -> Message
#

Run message parser.

aMessageSeq = [Message "/c_set" [Int32 1, Float 2.3, Int64 4, Double 5.6], Message "/memset" [string "addr", blob [7, 8]]]
map (parseMessage . showMessage (Just 4)) aMessageSeq  == aMessageSeq
valueparseBundle :: String -> Bundle
#

Run bundle parser.

aBundle = Bundle 1 [Message "/c_set" [Int32 1, Float 2.3, Int64 4, Double 5.6], Message "/memset" [string "addr", blob [7, 8]]]
parseBundle (showBundle (Just 4) aBundle) == aBundle
valueparsePacket :: String -> Packet
#

Run packet parser.

aPacket = Packet_Bundle (Bundle 1 [Message "/c_set" [Int32 1, Float 2.3, Int64 4, Double 5.6], Message "/memset" [string "addr", blob [7, 8]]])
parsePacket (showPacket (Just 4) aPacket) == aPacket