14
submitted 2 weeks ago by gomp@lemmy.ml to c/rust@lemmy.ml

(I'm just starting off with rust, so please be patient)

Is there an idiomatic way of writing the following as a one-liner, somehow informing rustc that it should keep the PathBuf around?

// nevermind the fully-qualified names
// they are there to clarify the code
// (that's what I hope at least)

let dir: std::path::PathBuf = std::env::current_dir().unwrap();
let dir: &std::path::Path   = dir.as_path();

// this won't do:
// let dir = std::env::current_dir().unwrap().as_path();

I do understand why rust complains that "temporary value dropped while borrowed" (I mean, the message says it all), but, since I don't really need the PathBuf for anything else, I was wondering if there's an idiomatic to tell rust that it should extend its life until the end of the code block.

you are viewing a single comment's thread
view the rest of the comments
[-] IsoSpandy@lemm.ee 1 points 2 weeks ago

There is a to_owned() thingy I use that for path buf shenanigans. Basically the value you create is a pointer reference short of. To_owned allocates it on memory.

this post was submitted on 26 Sep 2024
14 points (100.0% liked)

Rust Programming

8093 readers
9 users here now

founded 5 years ago
MODERATORS