So I have this function:
fn retrieve_font(url: String) -> Result<Font<'static>, anyhow::Error> {
let font_data = reqwest::blocking::get(url)?
.bytes()?;
let font = Font::try_from_bytes(&*font_data);
match font {
None => {
bail!("Invalid font")
}
Some(f) => { Ok(f.to_owned()) }
}
}
Upon compiling, I got
96 | Some(f) => { Ok(f.to_owned()) }
| ^^^^^^^^^^^^^^^^ returns a value referencing data owned by the current functio
Now I understand that this is due to me trying to return the reference of a value created and owned by the function.
However, I just want to load the Font (from rusttype) .
I guess I can return a vec[u8], but then every time I want to use the font, I have to do the let font = Font::try_from_bytes(&*font_data);
, which I am not sure is good for performance.
Do I have any other choices for returning a Font from a function?
Thank you.