zig

📁 poletron/custom-rules 📅 Jan 26, 2026
4
总安装量
2
周安装量
#50011
全站排名
安装命令
npx skills add https://github.com/poletron/custom-rules --skill zig

Agent 安装分布

github-copilot 2
mcpjam 1
claude-code 1
zencoder 1
cline 1

Skill 文档

Critical Patterns

Error Handling (REQUIRED)

// ✅ ALWAYS: Use error unions
fn readFile(path: []const u8) ![]u8 {
    const file = try std.fs.cwd().openFile(path, .{});
    defer file.close();
    return try file.readToEndAlloc(allocator, max_size);
}

// Usage with catch
const content = readFile("config.txt") catch |err| {
    std.log.err("Failed: {}", .{err});
    return err;
};

Memory Management (REQUIRED)

// ✅ ALWAYS: Use allocators explicitly
const allocator = std.heap.page_allocator;

var list = std.ArrayList(u8).init(allocator);
defer list.deinit();

try list.append(42);

Comptime (REQUIRED)

// ✅ Use comptime for compile-time computation
fn Vec(comptime T: type, comptime N: usize) type {
    return struct {
        data: [N]T,
        
        pub fn init() @This() {
            return .{ .data = undefined };
        }
    };
}

const Vec3f = Vec(f32, 3);

Decision Tree

Need error handling?       → Use error unions with try/catch
Need cleanup?              → Use defer
Need compile-time?         → Use comptime
Need optional value?       → Use ?T (optional type)
Need C interop?            → Use @cImport

Commands

zig build                  # Build project
zig run src/main.zig       # Build and run
zig test src/main.zig      # Run tests
zig fmt src/               # Format code

Resources