//@ programs memory safe, and that prevents us from invalidating iterators, also helps secure our multi-threaded code against
//@ data races. For example, notice how `read_files` sends a `String` to `filter_lines`. At run-time, only the pointer to
//@ the character data will actually be moved around (just like when a `String` is passed to a function with full ownership). However,
//@ programs memory safe, and that prevents us from invalidating iterators, also helps secure our multi-threaded code against
//@ data races. For example, notice how `read_files` sends a `String` to `filter_lines`. At run-time, only the pointer to
//@ the character data will actually be moved around (just like when a `String` is passed to a function with full ownership). However,