Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extern crate walkdir;
- use walkdir::WalkDir;
- use std::path::Path;
- use std::ffi::OsStr;
- fn get_extension_from_filename(filename: &str) -> Option<&str> {
- Path::new(filename)
- .extension()
- .and_then(OsStr::to_str)
- }
- fn main() {
- let mut cpp_files = Vec::new();
- for e in WalkDir::new(".").into_iter().filter_map(|e| e.ok()) {
- if e.metadata().unwrap().is_file() {
- let p = e.path().display().to_string().as_str();
- if get_extension_from_filename(p) == Some("cpp") {
- cpp_files.push(p);
- }
- }
- }
- }
- Error:
- error[E0716]: temporary value dropped while borrowed
- --> src\main.rs:17:21
- |
- 17 | let p = e.path().display().to_string().as_str();
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - temporary value is freed at the end of this statement
- | |
- | creates a temporary which is freed while still in use
- 18 |
- 19 | if get_extension_from_filename(p) == Some("cpp") {
- | - borrow used here, in later iteration of loop
- |
- = note: consider using a `let` binding to create a longer lived value
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement