Skip to documentation
SLOP

tiny.choir.composition.loaded.fragment

Reference tiny.choir composition loaded fragment

Defined in composition.loaded.

API (5)

Actions

Public operations.

Types and contracts

Public types and contracts.

No direct callersNo direct callscomposition.loadedfragment
Static calls · unresolved targets: unknown · external targets: unknown.

Source

Called byCallsNo direct callsprivate sourcelib.choir.src.composition.loaded.compositiondeinitImplprivate sourcelib.choir.src.composition.loaded.compositioninitOwnedImplcomposition.loaded.fragmentdeinitUnique
Static calls · unresolved targets: 0 · external targets: 2.

Source: lib/choir/src/composition/loaded/fragment.zig

zig
const std = @import("std");const composition = @import("../root.zig");const loaded = @import("root.zig");const Allocator = std.mem.Allocator;const abi = composition.abi;const model = composition.module;const source = composition.source;pub const FragmentVTable = struct {    invoke: ?*const fn (*anyopaque, *const model.CallSite, *abi.Context, *abi.Frame) abi.Status = null,    lookup_export: ?*const fn (*anyopaque, []const u8) ?usize = null,    deinit: *const fn (*anyopaque, Allocator) void,};pub const MaterializedFragment = struct {    state: *anyopaque,    vtable: *const FragmentVTable,};pub const FragmentMaterializer = struct {    id: source.FragmentId,    context: *anyopaque,    materialize: *const fn (*anyopaque, Allocator, *const model.CompositionModule, *const model.Fragment) anyerror!MaterializedFragment,};pub const LoadedFragment = struct {    id: source.FragmentId,    state: *anyopaque,    vtable: *const FragmentVTable,};pub fn deinitUnique(    allocator: Allocator,    fragments: []const LoadedFragment,    observer: ?loaded.LifecycleObserver,) void {    var index = fragments.len;    while (index != 0) {        index -= 1;        const fragment_value = fragments[index];        var earlier_index: usize = 0;        var aliased = false;        while (earlier_index < index) : (earlier_index += 1) {            if (fragments[earlier_index].state == fragment_value.state) {                aliased = true;                break;            }        }        if (aliased) continue;        fragment_value.vtable.deinit(fragment_value.state, allocator);        if (observer) |value| value.record(.{ .fragment_destroyed = fragment_value.id });    }}

Source: lib/choir/src/composition/loaded/root.zig:5

zig
pub const fragment = @import("fragment.zig");

Audit

Definitions6
Public names14
Members11
Version26.7.0
Revisiondaab053ee433