fus 2.4.1
import "./main" all

$base64: require("./base64")

fromBase64'export: (ns, s) -> $base64.toByteArray(s)

fromString'export: (ns, s) ->
    s: encodeURIComponent(s)
    bytes: []
    pos: 0
    loop --
        if pos < s.length
            if s.(pos) = "%"
                bytes.push(parseInt(s.substr(pos + 1, 2), 16))
                pos: pos + 3
            else
                bytes.push(s.charCodeAt(pos))
                pos: pos + 1
        else
            break
    bytes: Uint8Array(bytes)
    bytes

fromHex'export: (ns, s) ->
    assert(s.length mod 2 = 0)
    Uint8Array(
        repeat{0 to s..bound() by 2 for i ->
            parseInt(s.substr(i, 2), 16)
        }
    )
