gralha-byte-words Releases (1): 0.1.0.0 0x365c60316ea66a6c80658fc03b4eeac5 indexed https://jend.leeeet.dev/files.txt?path=gralha-byte-words@0.1.0.0 Definitions (55): Words.b2u (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=b2u) def b2u(b: Bool) -> U32: Words.fit (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=fit) # the smallest depth d with 2^d >= need def fit(n: Nat, +d: U32, +need: U32, ok: Bool) -> U32: Words.depth_for (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=depth_for) def depth_for(+need: U32) -> Nat: Words.Gr (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=Gr) type Gr is Type: Gr{src: Array, dst: Array} Words.gr_put (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=gr_put) def gr_put(r: Array & U32, dst: Array, +i: U32) -> Gr: Words.gr_loop (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=gr_loop) def gr_loop(n: Nat, st: Gr, +i: U32) -> Gr: Words.gr_dst (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=gr_dst) def gr_dst(st: Gr) -> Array: Words.grow (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=grow) def grow(out: Array, +cap: U32) -> Array: Words.ensure (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=ensure) # (out, cap) with cap >= need; ok says it already is def ensure(n: Nat, out: Array, +cap: U32, +need: U32, ok: Bool) -> Array & U32: Words.room (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=room) def room(out: Array, +cap: U32, +need: U32) -> Array & U32: Words.w4_hi (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=w4_hi) def w4_hi(r: Array & U32, +lo: U32, +sh: U32) -> Array & U32: Words.w4_lo (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=w4_lo) def w4_lo(r: Array & U32, +q: U32, +sh: U32) -> Array & U32: Words.le32_at (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=le32_at) # the four bytes from j, j lowest def le32_at(a: Array, +j: U32) -> Array & U32: Words.wb_of (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=wb_of) def wb_of(r: Array & U32, +sh: U32) -> Array & U32: Words.byte_at (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=byte_at) # the byte at j def byte_at(a: Array, +j: U32) -> Array & U32: Words.read_raw (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=read_raw) def read_raw(path: String) -> IO(Result<&1, &1, U32 & String, Array & U32>): Words.write_raw (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=write_raw) def write_raw(path: String, a: Array, +start: U32, +n: U32) -> IO(Array & Result<&1, &1, U32 & String, Unit>): Words.fill_at_raw (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=fill_at_raw) def fill_at_raw(path: String, +file_off: U32, a: Array, +start: U32, +n: U32) -> IO(Array & Result<&1, &1, U32 & String, Unit>): Words.append_raw (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=append_raw) def append_raw(path: String, a: Array, +header_n: U32, input: String, +pad_n: U32, +first: U32) -> IO(Array & Result<&1, &1, U32 & String, Unit>): Words.copy_range (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=copy_range) def copy_range(src: Array, +src_at: U32, dst: Array, +dst_at: U32, +n: U32) -> IO(Array & Array): Words.file_write_raw (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=file_write_raw) def file_write_raw(file: File, a: Array, +start: U32, +n: U32) -> IO(File & Array & Result<&1, &1, U32 & String, Unit>): Words.file_read_at_raw (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=file_read_at_raw) def file_read_at_raw(file: File, +offset: U32, +max: U32) -> IO(File & Result<&1, &1, U32 & String, Array & U32>): Words.open_out_raw (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=open_out_raw) def open_out_raw(path: String) -> IO(Result<&1, &1, U32 & String, File>): Words.fail (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=fail) def fail(what: String, e: U32 & String) -> IO(Unit): Words.read_got (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=read_got) def read_got(what: String, r: Result<&1, &1, U32 & String, Array & U32>) -> IO(Array & U32): Words.read (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=read) def read(+path: String) -> IO(Array & U32): Words.size_got (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=size_got) def size_got(what: String, r: Result<&1, &1, U32 & String, U32>) -> IO(U32): Words.wr_done (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=wr_done) def wr_done(what: String, r: Array & Result<&1, &1, U32 & String, Unit>) -> IO(Array): Words.write (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=write) # n bytes of a from byte start; the words come back def write(+path: String, a: Array, +start: U32, +n: U32) -> IO(Array): Words.fill_at (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=fill_at) def fill_at(+path: String, +file_off: U32, a: Array, +start: U32, +n: U32) -> IO(Array): Words.drop (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=drop) def drop(a: Array) -> IO(Unit): Words.open_got (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=open_got) def open_got(what: String, r: Result<&1, &1, U32 & String, File>) -> IO(File): Words.open_out (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=open_out) def open_out(+path: String) -> IO(File): Words.size_close (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=size_close) def size_close(what: String, r: File & Result<&1, &1, U32 & String, U32>) -> IO(U32): Words.file_size (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=file_size) # a member's byte count, read off its open handle def file_size(+path: String) -> IO(U32): Words.Chunk (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=Chunk) type Chunk is Type: Chunk{file: File, a: Array, n: U32} Words.file_read_got (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=file_read_got) def file_read_got(what: String, r: File & Result<&1, &1, U32 & String, Array & U32>) -> IO(Chunk): Words.file_write_got (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=file_write_got) def file_write_got(what: String, r: File & Array & Result<&1, &1, U32 & String, Unit>) -> IO(File): Words.append (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=append) def append(+path: String, a: Array, +header_n: U32, +input: String, +pad_n: U32, first: Bool) -> IO(Unit): Words.Sink (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=Sink) type Sink is Type: Sink{a: Array, cap: U32, pos: U32} Words.sink_write (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=sink_write) def sink_write(+path: String, file: File, st: Sink) -> IO(File): Words.sink_new (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=sink_new) def sink_new() -> Sink: Words.ob_fit (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=ob_fit) def ob_fit(r: Array & U32, +pos: U32) -> Sink: Words.ob_room (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=ob_room) # room for bytes up to need def ob_room(a: Array, +cap: U32, +pos: U32, +need: U32) -> Sink: Words.ob_or (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=ob_or) def ob_or(r: Array & U32, +cap: U32, +pos: U32, +b: U32) -> Sink: Words.ob_byte_at (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=ob_byte_at) def ob_byte_at(st: Sink, +b: U32) -> Sink: Words.put_byte (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=put_byte) def put_byte(st: Sink, +b: U32) -> Sink: Words.ow_split (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=ow_split) def ow_split(a: Array, +q: U32, +v: U32, +sh: U32, split: Bool) -> Array: Words.ob_word_got (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=ob_word_got) def ob_word_got(r: Array & U32, +cap: U32, +pos: U32, +q: U32, +sh: U32, +v: U32) -> Sink: Words.put_word_at (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=put_word_at) # Four bytes into a previously reserved output range. The destination may be # unaligned; its already-written low bytes are preserved and the high spill # becomes the prefix of the next word. def put_word_at(st: Sink, +v: U32) -> Sink: Words.reserve (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=reserve) def reserve(st: Sink, +n: U32) -> Sink: Words.put_str (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=put_str) # n bytes of a string def put_str(s: String, st: Sink) -> Sink: Words.skip (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=skip) # n zero bytes: the room is zero already def skip(st: Sink, +n: U32) -> Sink: Words.put_zeros (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=put_zeros) def put_zeros(st: Sink, +n: U32) -> Sink: Words.put_le32 (https://jend.leeeet.dev/definition.txt?path=gralha-byte-words@0.1.0.0/words.bend&name=put_le32) def put_le32(ob: Sink, +v: U32) -> Sink: