lib/accy/src/tensor/trace/define.zig

daab053ee43316e1809a84551d573ddd1e5bf3d2

 1 const std = @import("std");
 2 const trace = @import("root.zig");
 3 
 4 const Builder = trace.Builder;
 5 const Program = trace.Program;
 6 const Spec = trace.Spec;
 7 
 8 pub fn define(
 9     allocator: std.mem.Allocator,
10     name: []const u8,
11     specs: []const Spec,
12     comptime body: anytype,
13 ) !Program {
14     var builder = try Builder.init(allocator, name);
15     errdefer builder.deinit();
16     const args = try builder.inputs(specs);
17     const output = try body(&builder, args);
18     return try builder.finish(&.{output});
19 }