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 }