mirror of
https://github.com/ahgamut/rust-ape-example.git
synced 2024-11-21 23:41:00 +00:00
33 lines
784 B
Rust
33 lines
784 B
Rust
// ./src/scope/lifetime/elision.md
|
|
|
|
|
|
// `elided_input` and `annotated_input` essentially have identical signatures
|
|
// because the lifetime of `elided_input` is inferred by the compiler:
|
|
fn elided_input(x: &i32) {
|
|
println!("`elided_input`: {}", x);
|
|
}
|
|
|
|
fn annotated_input<'a>(x: &'a i32) {
|
|
println!("`annotated_input`: {}", x);
|
|
}
|
|
|
|
// Similarly, `elided_pass` and `annotated_pass` have identical signatures
|
|
// because the lifetime is added implicitly to `elided_pass`:
|
|
fn elided_pass(x: &i32) -> &i32 { x }
|
|
|
|
fn annotated_pass<'a>(x: &'a i32) -> &'a i32 { x }
|
|
|
|
fn part0() {
|
|
let x = 3;
|
|
|
|
elided_input(&x);
|
|
annotated_input(&x);
|
|
|
|
println!("`elided_pass`: {}", elided_pass(&x));
|
|
println!("`annotated_pass`: {}", annotated_pass(&x));
|
|
}
|
|
|
|
pub fn main() {
|
|
part0();
|
|
}
|
|
|