Туториал устарел. Лучше всегда читать
официальную доку. Она в Rust очень удобная и в сообществе принято её хорошо сдабривать примерами.
Первая ошибка говорит о том, что Вы возвращаете
Candle {...}
, в то время как ожидается
Result
(это как раз устаревшая часть туториала). Просто сделайте
Ok(Candle {...})
(пример с документации как раз подобное и показывает).
Вторая ошибка говорит о том, что Вы пытаетесь возвращаемый тип
rusqlite::row::MappedRows
подставить туда, где явно ожидаете
Vec
. Rust статически и строго типизированный язык, так не получится. По сути, Вам там просто нужно добавить
.collect()
после
?
. Так как
MappedRows
реализует Iterator
, то
.collect()
как раз пробежится по всем значениям итератора и соберёт их в
Vec
, который Вам и нужен.