I am running into some trouble when trying to return a string. I have been trying various ways of defining my variables and return value to try and make it so I can return the string primitive, but I get an array of lifetime related error messages.
pub fn raindrops(int: u64) -> &'a str {
let mut out = String::new();
if int % 3 == 0 {
out.push_str("Pling");
}
if int % 5 == 0 {
out.push_str("Plang");
}
if int % 7 == 0 {
out.push_str("Plong");
}
if out.is_empty() {
out.push_str(&format!("{}", int));
}
out.shrink_to_fit();
return out.as_str();
}
Error:
error[E0261]: use of undeclared lifetime name `'a`
--> src/lib.rs:1:32
|
1 | pub fn raindrops(int: u64) -> &'a str {
| ^^ undeclared lifetime
error: aborting due to previous error
error: Could not compile `raindrops`.
Build failed, waiting for other jobs to finish...
error[E0261]: use of undeclared lifetime name `'a`
--> src/lib.rs:1:32
|
1 | pub fn raindrops(int: u64) -> &'a str {
| ^^ undeclared lifetime