Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Opcode::SubAssign(n) => {
let mut value = self.pop();
value += n;
self.stack.push(value);
}Решил в рамках разминки слегка добавить коду из статьи идиоматичности, и в итоге так увлёкся, что аж жалко стало выбрасывать. Поэтому предлагаю вашему вниманию несколько альтернативную имплементацию ровно той же машины, что описал автор:
https://gist.github.com/mexus/0dbdf5af2367719c00bb70c5288d9cc9
P.S.
Дабы запихнуть всё в один файл нагородил mod'ов, в реальной жизни всё их содержимое конечно ушло бы в отдельные файлы.
Пишем стэковую виртуальную машину на Rust'e