@@ -54,20 +54,17 @@ it depends on
54[`Web.Encoding.TextEncoder`](https://pursuit.purescript.org/packages/purescript-web-encoding/docs/Web.Encoding.TextEncoder).
54[`Web.Encoding.TextEncoder`](https://pursuit.purescript.org/packages/purescript-web-encoding/docs/Web.Encoding.TextEncoder).
56```purescript
56```purescript
57−import Effect.Class (class MonadEffect, liftEffect)
58−import Data.UInt (fromInt)
59−import Data.ArrayBuffer.Types (ArrayBuffer(..))
60−import Data.ArrayBuffer.Builder (PutM, putArrayBuffer, execPut, putUint32be)
57+import Data.ArrayBuffer.Builder (PutM, putArrayBuffer, execPut)
61import Data.ArrayBuffer.Typed (buffer)
58import Data.ArrayBuffer.Typed (buffer)
62import Data.ArrayBuffer.ArrayBuffer (byteLength)
59import Data.ArrayBuffer.ArrayBuffer (byteLength)
63−import Web.Encoding.TextEncoder (new, TextEncoder, encode)
60+import Web.Encoding.TextEncoder (new, textEncoder)
65putStringUtf8 :: forall m. MonadEffect m => String -> PutM m Unit
62putStringUtf8 :: forall m. MonadEffect m => String -> PutM m Unit
66putStringUtf8 s = do
63putStringUtf8 s = do
67 textEncoder <- liftEffect new
64 textEncoder <- liftEffect new
68 let stringbuf = buffer $ encode s textEncoder
65 let stringbuf = buffer $ encode s textEncoder
69 -- Put a 32-bit big-endian length for the utf8 string, in bytes.
66 -- Put a 32-bit big-endian length for the utf8 string, in bytes.
70− putUint32be $ fromInt $ byteLength stringbuf
67+ putInt32be $ byteLength stringbuf
71 putArrayBuffer stringbuf
68 putArrayBuffer stringbuf
73arraybuffer :: ArrayBuffer <- execPut $ putStringUtf8 "🦝"
70arraybuffer :: ArrayBuffer <- execPut $ putStringUtf8 "🦝"