Skip to documentation
SLOP

tiny.choir.backends.wasm.binary

Reference tiny.choir backends wasm binary

Defined in backends.wasm.

API (22)

Actions

Public operations.

Types and contracts

Public types and contracts.

Values and defaults

Public values and defaults.

No direct callersNo direct callsbackends.wasmbinary
Static calls · unresolved targets: unknown · external targets: unknown.

Source

Source: lib/choir/src/backends/wasm/binary/model.zig:17

zig
pub const ExternalKind = enum(u8) {    function = 0,    memory = 2,};

Source: lib/choir/src/backends/wasm/binary/model.zig:8

zig
pub const Section = enum(u8) {    type = 1,    import = 2,    function = 3,    memory = 5,    export_ = 7,    code = 10,};

Source: lib/choir/src/backends/wasm/binary/model.zig:1

zig
pub const ValueType = enum(u8) {    i32 = 0x7f,    i64 = 0x7e,    f32 = 0x7d,    f64 = 0x7c,};

Source: lib/choir/src/backends/wasm/binary/sink.zig:3

zig
pub const Count = struct {    len: usize = 0,    pub fn writeByte(self: *Count, _: u8) error{CapacityOverflow}!void {        self.len = std.math.add(usize, self.len, 1) catch return error.CapacityOverflow;    }    pub fn writeAll(self: *Count, bytes: []const u8) error{CapacityOverflow}!void {        self.len = std.math.add(usize, self.len, bytes.len) catch return error.CapacityOverflow;    }};

Source: lib/choir/src/backends/wasm/binary/sink.zig:15

zig
pub const Fixed = struct {    bytes: []u8,    len: usize = 0,    pub fn init(bytes: []u8) Fixed {        return .{ .bytes = bytes };    }    pub fn writeByte(self: *Fixed, byte: u8) error{OutputOverflow}!void {        if (self.len == self.bytes.len) return error.OutputOverflow;        self.bytes[self.len] = byte;        self.len += 1;    }    pub fn writeAll(self: *Fixed, bytes: []const u8) error{OutputOverflow}!void {        const end = std.math.add(usize, self.len, bytes.len) catch return error.OutputOverflow;        if (end > self.bytes.len) return error.OutputOverflow;        @memcpy(self.bytes[self.len..end], bytes);        self.len = end;    }    pub fn finish(self: *const Fixed) error{OutputUnderflow}![]u8 {        if (self.len != self.bytes.len) return error.OutputUnderflow;        return self.bytes;    }};

Source: lib/choir/src/backends/wasm/binary/format.zig:23

zig
pub fn writeF32(out: anytype, value: f32) !void {    try writeLittleU32(out, @bitCast(value));}
Called byCallsNo direct callersbackends.wasm.binarywriteLittleU32backends.wasm.binarywriteF32
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/choir/src/backends/wasm/binary/format.zig:27

zig
pub fn writeF64(out: anytype, value: f64) !void {    try writeLittleU64(out, @bitCast(value));}
Called byCallsNo direct callersbackends.wasm.binarywriteLittleU64backends.wasm.binarywriteF64
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/choir/src/backends/wasm/binary/format.zig:4

zig
pub fn writeHeader(out: anytype) !void {    try out.writeAll(&.{ 0x00, 0x61, 0x73, 0x6d });    try out.writeAll(&.{ 0x01, 0x00, 0x00, 0x00 });}

Source: lib/choir/src/backends/wasm/binary/format.zig:31

zig
pub fn writeLittleU32(out: anytype, value: u32) !void {    try out.writeByte(@intCast(value & 0xff));    try out.writeByte(@intCast((value >> 8) & 0xff));    try out.writeByte(@intCast((value >> 16) & 0xff));    try out.writeByte(@intCast((value >> 24) & 0xff));}
Called byCallsNo direct callsbackends.wasm.binarywriteF32backends.wasm.binarywriteLittleU64backends.wasm.binarywriteLittleU32
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/choir/src/backends/wasm/binary/format.zig:38

zig
pub fn writeLittleU64(out: anytype, value: u64) !void {    try writeLittleU32(out, @intCast(value & 0xffff_ffff));    try writeLittleU32(out, @intCast(value >> 32));}
Called byCallsbackends.wasm.binarywriteF64backends.wasm.binarywriteLittleU32backends.wasm.binarywriteLittleU64
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/choir/src/backends/wasm/binary/format.zig:14

zig
pub fn writeName(out: anytype, name: []const u8) !void {    try writeUleb(out, name.len);    try out.writeAll(name);}
Called byCallstest sourcelib.choir.src.backends.wasm.binary.formattest: wasm binary counter and fixed s...backends.wasm.binarywriteUlebbackends.wasm.binarywriteName
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/choir/src/backends/wasm/binary/format.zig:9

zig
pub fn writeSectionHeader(out: anytype, section: binary.Section, body_len: usize) !void {    try out.writeByte(@backingInt(section));    try writeUleb(out, body_len);}
Called byCallstest sourcelib.choir.src.backends.wasm.binary.formattest: wasm binary section header carr...backends.wasm.binarywriteUlebbackends.wasm.binarywriteSectionHeader
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/choir/src/backends/wasm/binary/format.zig:54

zig
pub fn writeSleb(out: anytype, value: i64) !void {    var remaining = value;    while (true) {        var byte: u8 = @intCast(@as(u64, @bitCast(remaining)) & 0x7f);        remaining >>= 7;        const sign_bit = (byte & 0x40) != 0;        const done = (remaining == 0 and !sign_bit) or (remaining == -1 and sign_bit);        if (!done) byte |= 0x80;        try out.writeByte(byte);        if (done) return;    }}
Called byCallsNo direct callstest sourcelib.choir.src.backends.wasm.binary.formattest: wasm binary signed leb128 encod...backends.wasm.binarywriteSleb
Static calls · unresolved targets: 1 · external targets: 1.

Source: lib/choir/src/backends/wasm/binary/format.zig:43

zig
pub fn writeUleb(out: anytype, value: anytype) !void {    var remaining: u64 = @intCast(value);    while (true) {        var byte: u8 = @intCast(remaining & 0x7f);        remaining >>= 7;        if (remaining != 0) byte |= 0x80;        try out.writeByte(byte);        if (remaining == 0) return;    }}
Called byCallsNo direct callstest sourcelib.choir.src.backends.wasm.binary.formattest: wasm binary unsigned leb128 enc...test sourcelib.choir.src.backends.wasm.binary.formattest: wasm binary unsigned lengths cr...backends.wasm.binarywriteNamebackends.wasm.binarywriteSectionHeaderbackends.wasm.binarywriteUleb
Static calls · unresolved targets: 0 · external targets: 1.

Source: lib/choir/src/backends/wasm/binary/format.zig:19

zig
pub fn writeValueType(out: anytype, value_type: binary.ValueType) !void {    try out.writeByte(@backingInt(value_type));}

Source: lib/choir/src/backends/wasm/binary/model.zig:22

zig
pub const empty_block_type: u8 = 0x40;
Called byCallsNo direct callstest sourcelib.choir.src.backends.wasm.binary.sinktest: wasm binary fixed sink requires...backends.wasm.binary.Fixedfinish
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callsprivate; no linkfun.sdfii.src.properties.navigation.heap.Gene...propertytest sourcelib.choir.src.backends.wasm.binary.sinktest: wasm binary fixed sink requires...backends.wasm.binary.Fixedinit
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callstest sourcelib.choir.src.backends.wasm.binary.sinktest: wasm binary fixed sink requires...backends.wasm.binary.FixedwriteByte
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/choir/src/backends/wasm/binary/root.zig

zig
const model = @import("model.zig");const format = @import("format.zig");const sink = @import("sink.zig");pub const ExternalKind = model.ExternalKind;pub const Section = model.Section;pub const ValueType = model.ValueType;pub const empty_block_type = model.empty_block_type;pub const Count = sink.Count;pub const Fixed = sink.Fixed;pub const writeF32 = format.writeF32;pub const writeF64 = format.writeF64;pub const writeHeader = format.writeHeader;pub const writeLittleU32 = format.writeLittleU32;pub const writeLittleU64 = format.writeLittleU64;pub const writeName = format.writeName;pub const writeSectionHeader = format.writeSectionHeader;pub const writeSleb = format.writeSleb;pub const writeUleb = format.writeUleb;pub const writeValueType = format.writeValueType;

Source: lib/choir/src/backends/wasm/root.zig:2

zig
pub const binary = @import("binary/root.zig");

Audit

Definitions23
Public names23
Members15
Version26.7.0
Revisiondaab053ee433