use std::io;
use winreg::transaction::Transaction;
use winreg::HKCU;
fn main() -> io::Result<()> {
let t = Transaction::new()?;
let (key, _disp) = HKCU.create_subkey_transacted("Software\\RustTransaction", &t)?;
key.set_value("TestQWORD", &1_234_567_891_011_121_314u64)?;
key.set_value("TestDWORD", &1_234_567_890u32)?;
println!("Commit transaction? [y/N]:");
let mut input = String::new();
io::stdin().read_line(&mut input)?;
input = input.trim_end().to_owned();
if input == "y" || input == "Y" {
t.commit()?;
println!("Transaction committed.");
} else {
t.rollback()?;
println!("Transaction wasn't committed, it will be rolled back.");
}
Ok(())
}