What do identifiers with a single quote (') mean in Rust?
Hi! I recently started learning Rust and keep coming across strange identifiers in other people's code that start with a single quote, like `'a`, `'static`, `'b`. At first I thought they were some kind of macros or special variables, but then I noticed they often appear in function and struct declarations.\n\nHere's an example I found in the documentation:\n\n```rust\nfn longest<'a>(x: &'a str, y: &'a str) -> &'a str {\n if x.len() > y.len() { x } else { y }\n}\n```\n\nWhat is `'a`? Why is it in angle brackets after the function name? I understand it's related to lifetime, but I can't figure out how it works. In other languages like C++ or Java, I haven't seen this. Please explain in simple terms what these things are and why they are needed. Especially I'm confused by