I'm just trying to clarify...it's lifetime safe, but not access safe, or leak safe?
I'm just trying to clarify...it's lifetime safe, but not access safe, or leak safe?
Most people mean “safe Rust” when they say “Rust.”
Leaks are memory safe though. They’re hard, but not impossible, to get.
I disagree. I think they mean Rust code they see in use that has no explicit "unsafe" blocks. For example, most people are going to say "let mut v = Vec::<i32>::new(); v.push(0)" is "safe Rust." It is, in the sense that all the rules of Rust safety apply to the specific code quoted as-is. It also isn't, because 'Vec' is littered with unsafe.
If Rust never let you write code that could "go wrong", then it would not be useful for its target domain. Sometimes you need a "trust me" block where you call some internal allocator or trusted library function. It's more about the balance of affordances: is it easy to do the right thing in Rust, whereas in C it is easy to do whatever.