When writing functions that accept references as arguments, the compiler can infer the correct lifetimes in many cases, saving you the trouble of writing them out by hand. Launching the CI/CD and R Collectives and community editing features for What is the relationship between the lifetime of a borrowed reference to a vector and the borrowed pointers it contains? be alive! Hey! up in our face. Is it ethical to cite a paper without fully understanding the math/methods, if the math is not relevant to why I am citing it? Does Cosmic Background radiation transmit heat? In input contexts, a fresh lifetime is generated for each "input location". Automatically formatting your code lets you save time and arguments by using the official Rust style . More concretely, to understand input contexts, consider the following example: This is the same, because for each '_, a fresh lifetime is generated. Store data that implements a trait in a vector, the trait `_embedded_hal_digital_InputPin` is not implemented for `PE2