Lifetime error when creating a function that returns a value implementing serde::Deserialize
- 阅读更多 关于 Lifetime error when creating a function that returns a value implementing serde::Deserialize
I'm using serde and serde_json 1.0 to decode data from a base64 string: fn from_base64_str<T: Deserialize>(string: &str) -> T { let slice = decode_config(string, URL_SAFE).unwrap(); serde_json::from_slice(&slice).unwrap() } When I compile, I got this: error[E0106]: missing lifetime specifier --> src/main.rs:6:23 | 6 | fn from_base64_str<T: Deserialize>(string: &str) -> T { | ^^^^^^^^^^^ expected lifetime parameter Checking the serde doc, Deserialize is defined as: pub trait Deserialize<'de>: Sized { So I added the lifetime: fn from_base64_str<'de, T: Deserialize<'de>>(string: &str) -> T { let