Хороший односвязный стек

В прошлой главе мы написали минимальный жизнеспособный односвязный стек. Правда, было несколько проектных решений, которые сделали его довольно отстойным. Предлагаю сделать его не таким отстойным, а для этого:

  • Переизобрести велосипед
  • Сделать наш список способным содержать элементы любого типа
  • Добавить метод peek
  • Реализовать итератор

В процессе мы узнаем о:

  • Продвинутом использовании Option
  • Обобщениях
  • Времени жизни
  • Итераторах

Для начала создадим новый файл second.rs:

// в lib.rs

pub mod first;
pub mod second;

И скопируем в него содержимое first.rs.