on 492ae2f help sign in
46 lines 916 B history raw
1### `++sifo`
364-bit encode
5Encodes an atom to MIME base64, producing a [`++tape`]().
7Accepts
8-------
10`tig` is an atom.
12Produces
13--------
15A `++tape`.
17Source
18------
20 ++ sifo :: 64-bit encode
21 |= tig=@
22 ^- tape
23 =+ poc=(~(dif fo 3) 0 (met 3 tig))
24 =+ pad=(lsh 3 poc (swap 3 tig))
25 =+ ^= cha
26 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
27 =+ ^= sif
28 |- ^- tape
29 ?~ pad
30 ~
31 =+ d=(end 0 6 pad)
32 [(cut 3 [d 1] cha) $(pad (rsh 0 6 pad))]
33 (weld (flop (slag poc sif)) (trip (fil 3 poc '=')))
34 ::
36Examples
37--------
39 ~zod/main=> (sifo 'foobar')
40 "Zm9vYmFy"
41 ~zod/main=> (sifo 1)
42 "Q=="
43 ~zod/main=> (sifo (shax %hi))
44 "j0NDRmSPa5bfid2pAcUXaxCm2Dlh3TwayItZstwyeqQ="