Simpler lifetimes in static and const
In older Rust, you had to explicitly write the 'static
lifetime in anystatic
or const
that needed a lifetime:
#![allow(unused_variables)]
fn main() {
mod foo {
const NAME: &'static str = "Ferris";
}
mod bar {
static NAME: &'static str = "Ferris";
}
}
But 'static
is the only possible lifetime there. So Rust now assumes the 'static
lifetime,and you don't have to write it out:
#![allow(unused_variables)]
fn main() {
mod foo {
const NAME: &str = "Ferris";
}
mod bar {
static NAME: &str = "Ferris";
}
}
In some situations, this can remove a lot of boilerplate:
#![allow(unused_variables)]
fn main() {
mod foo {
// old
const NAMES: &'static [&'static str; 2] = &["Ferris", "Bors"];
}
mod bar {
// new
const NAMES: &[&str; 2] = &["Ferris", "Bors"];
}
}