HORIZON HASKELLDocslts/ghc-10.0.xfc4e5982026-10-11Search names, modules, packages, or :: a typeCtrl K

GHC 10.0.0.20260917 · lts/ghc-10.0.x · fc4e598 · 2026-10-11

Modulehosc-0.21.1Haskell2010

Sound.Osc.Text

A simple and unambigous text encoding for Osc.

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

Hex encoded byte sequence.

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

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

Example1 expression
map escapeString ["str", "str ", "st r", "s\tr", "s\\tr", "\nstr"]["str","str\\ ","st\\ r","s\\\tr","s\\\\tr","\\\nstr"]
valueshowDatum :: FpPrecision -> Datum -> String
#

Printer for Datum.

Example2 expressions
let 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.

Example2 expressions
let 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"/addr ,ihfdsbm 1 2 3.0 4.0 five 0607 08090a0b"
Example2 expressions
let 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["/c_set ,if 1 2.3","/s_new ,siii sine -1 1 1"]

Printer for Bundle

Example2 expressions
let 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"#bundle 4294967296 2 /c_set ,ifhd 1 2.3 4 5.6 /memset ,sb addr 0708"

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.

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

Run message parser.

Example2 expressions
let 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  == aMessageSeqTrue

Run bundle parser.

Example2 expressions
let 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) == aBundleTrue

Run packet parser.

Example2 expressions
let 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) == aPacketTrue