(Полный код на https://github.com/dahosek/gftopdf2).
Я написал первый проход небольшой библиотеки для чтения файлов GF, выводимых Metafont. Я не слишком сумасшедший, так это то, что для 11 различных типов кодов операций, которые я интерпретирую, каждый из них передается &mut ctx
для структуры контекста, которая отслеживает, что было прочитано на данный момент, а также Read
источник данных, плюс, я должен передать &mut ctx.input
специализированным читателям для чтения аргументов кодов операций. Я думаю, должен быть способ уменьшить общую многословность того, что я пишу. Я тоже не без ума от кода вроде
let d = read2(&mut ctx.input)?;
paint(d, &mut ctx)?;
и мне интересно, есть ли лучший способ справиться с этим.