1.9 KiB
1.9 KiB
📕 llmstxt.zig
AI-first approach to documentation, based on llms.txt. Continouously rebuilds your llms.txt
file to keep in sync with your codebase.
⚠️ This is a work in progress, expect many things to be broken.
Build from source
- needs
zig@0.14.0
git clone https://github.com/bruvduroiu/llmstxt.zig
cd llmstxt.zig/
zig build
Usage
./zig-out/bin/llmstxt_zig file.ext
Examples
from typing import Union
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: Union[str, None] = None):
return {"item_id": item_id, "q": q}
Result:
File: test.py
Language: python
var app = FastAPI();
func read_root() -> void;
func read_item() -> void;
const std = @import("std");
const root = @import("root.zig");
const E = root.E;
const P3 = root.P3;
const Vec3 = root.Vec3;
const Sphere = root.Sphere;
const Ray = root.Ray;
const Interval = root.Interval;
pub const Hittable = union(enum) {
const Self = @This();
sphere: Sphere,
pub fn initSphere(center: [3]E, radius: E) Self {
return .{ .sphere = Sphere.init(center, radius) };
}
pub fn deinit(self: Self) void {
switch (self) {
inline else => |hittable| hittable.deinit(),
}
}
pub const Collision = struct {
const Inner = @This();
pub const Face = enum { front, back };
t: E,
p: P3,
normal: Vec3,
face: Face,
};
pub fn collisionAt(self: Self, interval: Interval, ray: *const Ray) ?Collision {
switch (self) {
inline else => |hittable| return hittable.collisionAt(interval, ray),
}
}
};
Result:
File: /Users/bogdanbuduroiu/development/bruvduroiu/raytracing.zig/src/hittable.zig
Language: zig
var t;
var p;
var normal;
var face;