winreg 0.52.0

Rust bindings to MS Windows Registry API
Documentation
# Changelog

## 0.52.0
* Breaking change: `.commit()` and `.rollback()` now consume the transaction ([#62]https://github.com/gentoo90/winreg-rs/issues/62)
* Add `RegKey::rename_subkey()` method ([#58]https://github.com/gentoo90/winreg-rs/issues/58)
* Make serialization modules public ([#59]https://github.com/gentoo90/winreg-rs/issues/59)
* Fix UB in `FromRegValue` for `u32` and `u64` ([#61]https://github.com/gentoo90/winreg-rs/issues/61)

## 0.14.0
* Breaking change: increase MSRV to 1.34
* Fix UB in `FromRegValue` for `u32` and `u64` ([#61]https://github.com/gentoo90/winreg-rs/issues/61)

## 0.13.0

* Breaking change: `.commit()` and `.rollback()` now consume the transaction ([#62]https://github.com/gentoo90/winreg-rs/issues/62)
* Add `RegKey::rename_subkey()` method ([#58]https://github.com/gentoo90/winreg-rs/issues/58)
* Make serialization modules public ([#59]https://github.com/gentoo90/winreg-rs/issues/59)

## 0.12.0, 0.51.0

* Breaking change: fix `std::fmt::Display` implementation for `RegValue` ([#52]https://github.com/gentoo90/winreg-rs/issues/52)
* Add `RegKey::encode_transacted()` method (pullrequest [#55]https://github.com/gentoo90/winreg-rs/pull/55, fixes [#54]https://github.com/gentoo90/winreg-rs/issues/54)

## 0.50.0

* Breaking change: [`winapi-rs`]https://crates.io/crates/winapi is not maintained any more, so migrate to Microsofts [`windows-sys`]https://crates.io/crates/windows-sys as a backend ([#48]https://github.com/gentoo90/winreg-rs/pull/48, [#51]https://github.com/gentoo90/winreg-rs/pull/51)
* Breaking change: Increase minimum supported Rust version to `1.46` since `windows-sys` doesn't compile with older versions
* Replace deprecated methods from `chrono` ([#48]https://github.com/gentoo90/winreg-rs/pull/48)

## 0.11.0

* Migrate to the 2018 edition of Rust
* Move the code from `lib.rs` to separate files
* Use [`cfg-if`]https://crates.io/crates/cfg-if instead of `build.rs` to fail build on non-windows systems
* Reimplement deserialization logic, implement [de]serialization for byte arrays ([#49]https://github.com/gentoo90/winreg-rs/issues/49)
* Fix some typos and `clippy` warnings

## 0.10.1

* Bump the minimal required version of `winapi` to `0.3.9` (required for `load_app_key`)
* Reexport `REG_PROCESS_APPKEY` and use it in the `load_app_key` example

## 0.10.0

* Add `RegKey::load_app_key()` and `RegKey::load_app_key_with_flags()` ([#30]https://github.com/gentoo90/winreg-rs/issues/30)
* Update dev dependency `rand` to `0.8`
* Add Github actions
* Fix some clippy warnings

## 0.9.0

* Breaking change: `OsStr` and `OsString` registry values are not `NULL`-terminated any more ([#34]https://github.com/gentoo90/winreg-rs/issues/34, [#42]https://github.com/gentoo90/winreg-rs/issues/42)
* Refactoring: use macros for `ToRegValue` impls and tests for string values
* Fix `bare_trait_objects` warning in the doctests
* Add `impl ToRegValue for OsString`
* Add conversion between `REG_MULTI_SZ` and vectors of strings ([#16]https://github.com/gentoo90/winreg-rs/issues/16)
* Fix: set minimal `winapi` version to 0.3.7 (earlier versions don't have `impl-default` and `impl-debug` features which we use)
* Appveyor now checks the crate against `rust-1.31.1` too

## 0.8.0

* Implement serialization of `char` and maps
* Implement `std::fmt::Display` for `RegValue`
* Make `RegKey::{predef,raw_handle,enum_keys,enum_values}` functions `const`
* Give a better error message when compiling on platforms other than Windows ([#38]https://github.com/gentoo90/winreg-rs/pull/38)
* Tests are moved from `src/lib.rs` to `tests/reg_key.rs`

## 0.7.0

* Breaking change: remove deprecated `Error::description` ([#28]https://github.com/gentoo90/winreg-rs/pull/28)
* Optimize `Iterator::nth()` for the `Enum*` iterators ([#29]https://github.com/gentoo90/winreg-rs/pull/29)

## 0.6.2

* Add `RegKey::delete_subkey_with_flags()` ([#27]https://github.com/gentoo90/winreg-rs/pull/27)

## 0.6.1

* Add `last_write_time` field to `RegKeyMetadata` (returned by `RegKey::query_info()`) ([#25]https://github.com/gentoo90/winreg-rs/pull/25).
* Add `get_last_write_time_system()` and `get_last_write_time_chrono()` (under `chrono` feature) methods to `RegKeyMetadata`.

## 0.6.0

* Breaking change: `create_subkey`, `create_subkey_with_flags`, `create_subkey_transacted` and
`create_subkey_transacted_with_flags` now return a tuple which contains the subkey and its disposition
which can be `REG_CREATED_NEW_KEY` or `REG_OPENED_EXISTING_KEY` ([#21]https://github.com/gentoo90/winreg-rs/issues/21).
* Examples fixed to not use `unwrap` according to [Rust API guidelines]https://rust-lang-nursery.github.io/api-guidelines/documentation.html#examples-use--not-try-not-unwrap-c-question-mark.

## 0.5.1

* Reexport `HKEY` ([#15]https://github.com/gentoo90/winreg-rs/issues/15).
* Add `raw_handle` method ([#18]https://github.com/gentoo90/winreg-rs/pull/18).

## 0.5.0

* Breaking change: `open_subkey` now opens a key with readonly permissions.
Use `create_subkey` or `open_subkey_with_flags` to open with read-write permissions.
* Breaking change: features `transactions` and `serialization-serde` are now disabled by default.
* Breaking change: serialization now uses `serde` instead of `rustc-serialize`.
* `winapi` updated to `0.3`.
* Documentation fixes ([#14]https://github.com/gentoo90/winreg-rs/pull/14)

## 0.4.0

* Make transactions and serialization otional features
* Update dependencies + minor fixes ([#12]https://github.com/gentoo90/winreg-rs/pull/12)

## 0.3.5

* Implement `FromRegValue` for `OsString` and `ToRegValue` for `OsStr` ([#8]https://github.com/gentoo90/winreg-rs/issues/8)
* Minor fixes

## 0.3.4

* Add `copy_tree` method to `RegKey`
* Now checked with [rust-clippy]https://github.com/Manishearth/rust-clippy
    * no more `unwrap`s
    * replaced `to_string` with `to_owned`
* Fix: reading strings longer than 2048 characters ([#6]https://github.com/gentoo90/winreg-rs/pull/6)

## 0.3.3

* Fix: now able to read values longer than 2048 bytes ([#3]https://github.com/gentoo90/winreg-rs/pull/3)

## 0.3.2

* Fix: `FromRegValue` trait now requires `Sized` (fixes build with rust 1.4)

## 0.3.1

* Fix: bump `winapi` version to fix build

## 0.3.0

* Add transactions support and make serialization transacted
* Breaking change: use `std::io::{Error,Result}` instead of own `RegError` and `RegResult`