vocabmerge: a subject scheme, supplied rather than compiled in

This commit is contained in:
funkpower
2026-09-19 19:06:57 -04:00
parent 05b363ea8a
commit 484017fc18
9 changed files with 801 additions and 2 deletions
+14 -1
View File
@@ -19,7 +19,7 @@ type Written = Result<Vec<String>, String>;
type Job = (&'static str, fn() -> Written);
fn main() -> ExitCode {
let jobs: [Job; 18] = [
let jobs: [Job; 19] = [
("tokens", tokens),
("unescape", unescape),
("chunkmd", chunkmd),
@@ -38,6 +38,7 @@ fn main() -> ExitCode {
("avplan", avplan),
("pdfgutter", pdfgutter),
("seriesof", seriesof),
("subjects", subjects),
];
for (name, job) in jobs {
@@ -220,6 +221,18 @@ fn cueseg() -> Written {
Ok(written)
}
fn subjects() -> Written {
let dir = parity::golden("subjects");
std::fs::create_dir_all(&dir).map_err(|e| e.to_string())?;
let cases = parity::dir().join("cases/subjects/cases.ndjson");
let text = std::fs::read_to_string(&cases).map_err(|e| e.to_string())?;
let answers = parity::run_oracle("subjects.py", &text)?;
let path = dir.join("cases.ndjson");
std::fs::write(&path, answers).map_err(|e| e.to_string())?;
Ok(vec![path.display().to_string()])
}
fn seriesof() -> Written {
let dir = parity::golden("seriesof");
std::fs::create_dir_all(&dir).map_err(|e| e.to_string())?;