kz80_db 0.1.1

dBASE II clone for Z80 - Retro database on the RetroShield
Documentation
//! kz80_db - dBASE II Clone for Z80
//!
//! Generates a Z80 ROM implementing a dBASE II-style database.

use std::fs::File;
use std::io::Write;

mod codegen;
use codegen::DatabaseCodeGen;

fn main() {
    let mut args = std::env::args().skip(1);
    let output_file = args.next();

    let mut gen = DatabaseCodeGen::new();
    gen.generate();
    let rom = gen.into_rom();

    println!("Generated database binary: {} bytes", rom.len());

    if let Some(path) = output_file.as_ref().map(|s| s.as_str()).or(Some("db.bin")) {
        let mut file = File::create(path).expect("Cannot create output file");
        file.write_all(&rom).expect("Cannot write output file");
        println!("  Written to: {}", path);
    }
}