Skip to documentation
SLOP

tiny.choir.composition.loaded.lifecycle

Reference tiny.choir composition loaded lifecycle

Defined in composition.loaded.

API (7)

Actions

Public operations.

Types and contracts

Public types and contracts.

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

Source

Called byCallsNo direct callsprivate sourcelib.choir.src.composition.loaded.compositioninitOwnedImplcomposition.loaded.lifecycle.Recorderinit
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsprivate sourcelib.choir.src.composition.loaded.lifecycle.Re...recordSerializedprivate sourcelib.tldr.src.formats.elf.merge.targetrecordcomposition.loaded.lifecycle.Recorderrecord
Static calls · unresolved targets: 0 · external targets: 2.

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

zig
const sys = @import("sys");const composition = @import("../root.zig");const source = composition.source;pub const LifecycleEvent = union(enum) {    invocation_destroyed: u64,    fragment_destroyed: source.FragmentId,    composition_destroyed,};pub const LifecycleObserver = struct {    ptr: *anyopaque,    record_fn: *const fn (*anyopaque, LifecycleEvent) void,    pub fn record(self: LifecycleObserver, event: LifecycleEvent) void {        self.record_fn(self.ptr, event);    }};pub const Recorder = struct {    mutex: sys.thread.Mutex = .{},    target: ?LifecycleObserver,    pub fn init(target: ?LifecycleObserver) Recorder {        return .{ .target = target };    }    pub fn record(self: *Recorder, event: LifecycleEvent) void {        const target = self.target orelse return;        self.mutex.lock();        defer self.mutex.unlock();        target.record(event);    }    pub fn serialized(self: *Recorder) ?LifecycleObserver {        if (self.target == null) return null;        return .{            .ptr = self,            .record_fn = recordSerialized,        };    }    fn recordSerialized(ptr: *anyopaque, event: LifecycleEvent) void {        const self: *Recorder = @ptrCast(@alignCast(ptr));        self.record(event);    }};

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

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

Audit

Definitions8
Public names14
Members7
Version26.7.0
Revisiondaab053ee433