The key insight you’re missing is that reader() creates a thing that needs to live somewhere.
var file_reader = file.reader(&buf); // this var needs the same lifetime as `buf`
const reader = &file_reader.interface; // `reader` not reassigned, so use `const`