~/bend-docscommunity

b64.bend checks

raw source on the hub · import 0xd66ee682d4ce8c656782ca9e0e4634cb/b64.bend as B64

Base64 over byte lists (no IO, no TLS).

Import as: import ./b64.bend as B64 Then B64.encode, B64.decode.

Discipline (user-land Bend has no Base carve-out): - every callee is defined ABOVE its caller; only self-recursion. - match scrutinees are params or pattern-bound vars, never computed. - helpers above drivers are leaves: they never call back down.

1 import
import Base

Definitions

def enc_char source · line 15 · raw

@s:U32 -> U32

def dec_digit source · line 151 · raw

@c:U32 -> U32

def dec_is_data source · line 288 · raw

@v:U32 -> Bool

def dec_is_bad source · line 293 · raw

@v:U32 -> Bool

def sext0 source · line 298 · raw

@n:U32 -> U32

def sext1 source · line 301 · raw

@n:U32 -> U32

def sext2 source · line 304 · raw

@n:U32 -> U32

def sext3 source · line 307 · raw

@n:U32 -> U32

def tail1.s1 source · line 312 · raw

@+b0:U32 -> U32

def tail1.s0 source · line 315 · raw

@+b0:U32 -> U32

def tail1.emit source · line 318 · raw

@+b0:U32 -> String

def tail2.s0 source · line 323 · raw

@+b0:U32 -> U32

def tail2.s1 source · line 326 · raw

@+b0:U32 -> @+b1:U32 -> U32

def tail2.s2 source · line 329 · raw

@+b1:U32 -> U32

def tail2.emit source · line 332 · raw

@+b0:U32 -> @+b1:U32 -> String

def group3 source · line 337 · raw

@+b0:U32 -> @+b1:U32 -> @+b2:U32 -> U32

def emit4 source · line 342 · raw

@+n:U32 -> String

def encode source · line 348 · raw

@bs:List<&2, U32> -> String

def chars_of source · line 365 · raw

@s:String -> List<&2, U32>

def quad_is_bad source · line 376 · raw

@v0:U32 -> @v1:U32 -> @v2:U32 -> @v3:U32 -> Bool

def quad_pad_ok.go source · line 379 · raw

@is2:Bool -> @is3:Bool -> Bool

def quad_pad_ok source · line 390 · raw

@v2:U32 -> @v3:U32 -> Bool

def quad_n source · line 393 · raw

@v0:U32 -> @v1:U32 -> @v2:U32 -> @v3:U32 -> @pad2:Bool -> U32

def quad_bytes source · line 400 · raw

@+n:U32 -> @pad:U32 -> List<&2, U32>

def quad_pad_count.go source · line 409 · raw

@is2:Bool -> @is3:Bool -> U32

def quad_pad_count source · line 420 · raw

@v2:U32 -> @v3:U32 -> U32

def quad_done source · line 423 · raw

@v0:U32 -> @v1:U32 -> @+v2:U32 -> @+v3:U32 -> Result<&1, &1, Pair(U32, String), List<&2, U32>>

def quad_chk1 source · line 426 · raw

@v0:U32 -> @v1:U32 -> @+v2:U32 -> @+v3:U32 -> @is1:Bool -> Result<&1, &1, Pair(U32, String), List<&2, U32>>

def quad_chk0 source · line 433 · raw

@v0:U32 -> @+v1:U32 -> @+v2:U32 -> @+v3:U32 -> @is0:Bool -> Result<&1, &1, Pair(U32, String), List<&2, U32>>

def quad_chkpad source · line 440 · raw

@+v0:U32 -> @+v1:U32 -> @+v2:U32 -> @+v3:U32 -> @ok:Bool -> Result<&1, &1, Pair(U32, String), List<&2, U32>>

def quad_go source · line 447 · raw

@+v0:U32 -> @+v1:U32 -> @+v2:U32 -> @+v3:U32 -> @bad:Bool -> Result<&1, &1, Pair(U32, String), List<&2, U32>>

def quad source · line 454 · raw

@c0:U32 -> @c1:U32 -> @c2:U32 -> @c3:U32 -> Result<&1, &1, Pair(U32, String), List<&2, U32>>

def decode_quads.put source · line 461 · raw

@head:Result<&1, &1, Pair(U32, String), List<&2, U32>> -> @tail:Result<&1, &1, Pair(U32, String), List<&2, U32>> -> Result<&1, &1, Pair(U32, String), List<&2, U32>>

def decode_quads source · line 475 · raw

@cs:List<&2, U32> -> Result<&1, &1, Pair(U32, String), List<&2, U32>>

def decode source · line 494 · raw

@s:String -> Result<&1, &1, Pair(U32, String), List<&2, U32>>