base line project for "spec-driven" ai dev, included allot of yelling at ai to listen to the specs, trying and probaly failing at catching it deleting unit tests
A D implementation of Unicode Separated Values (USV) parser following the official IETF specification.
Unicode Separated Values (USV) uses Unicode separator characters to structure data:
- Unit Separator: U+001F (␟)
- Record Separator: U+001E (␞)
- Group Separator: U+001D (␝)
- File Separator: U+001C (␜)
- End of Transmission: U+0004 (␄) - supported as stop marker only
This project does NOT use DUB (per NO DUB directive). Build manually with:
dmd usv.d # Compile the libraryimport usv;
// Write USV data
int[] data = [1, 2, 3];
writeusv(data, "output.usv"); // Write to file
// Read USV data
int[] readData = readusv!(int[])(data, "output.usv"); // Read from filewriteusv(T, int N=-1,alias TO=void)(T data, string file): Write data to USV fileT readusv(T, int N=-1,alias TO=void)(string file): Read USV file to data
isvoid(alias A): Check if type is voiddim(T): Determine dimension of a typeisnotstructure(A): Check if type is not a structure
This project follows these core principles:
- NO DUB: No DUB build system - simple manual compilation
- KISS (Keep It Simple Stupid): Simple, straightforward implementations
- OBEY MY API: Strict adherence to defined interfaces
Based on the official IETF draft specification for Unicode Separated Values.
Run the unit tests with:
dmd -unittest -main -run src/usv.d