winreg breaking changes

cargo

33 curated breaking changes across major versions of winreg. Use this as a migration checklist before bumping dependencies.

33
changes
Breaking changes by transition
  • v0.8.0 \u2192 v0.9.0breaking

    Refactoring: use macros for `ToRegValue` impls and tests for string values

  • v0.8.0 \u2192 v0.9.0breaking

    Fix: set minimal `winapi` version to 0.3.7 (earlier versions don't have `impl-default` and `impl-debug` features which we use)

  • v0.8.0 \u2192 v0.9.0breaking

    Add conversion between `REG_MULTI_SZ` and vectors of strings (#16)

  • v0.8.0 \u2192 v0.9.0breaking

    Add `impl ToRegValue for OsString`

  • v0.8.0 \u2192 v0.9.0breaking

    Fix `bare_trait_objects` warning in the doctests

  • v0.6.2 \u2192 v0.7.0breaking

    Optimize `Iterator::nth()` for the `Enum*` iterators (#29)

  • v0.5.1 \u2192 v0.6.0breaking

    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).

  • v0.16.0 \u2192 v0.56.0breaking

    Breaking change: serialization now opens the key with `DELETE`, `KEY_ENUMERATE_SUB_KEYS` and `KEY_QUERY_VALUE` permissions in addition to `KEY_CREATE_SUB_KEY` and `KEY_SET_VALUE` used previously. This is required for:

  • v0.16.0 \u2192 v0.56.0breaking

    New `RegKey` methods: `encode_destructive()` and `encode_destructive_transacted()` that wipe all subkeys/values of a target key before writing to it (#76).

  • v0.16.0 \u2192 v0.56.0breaking

    New `RegKey` methods: `enum_keys_os_string()` and `enum_values_os_string()` return iterators that use `OsString` for key/value names (#80).

  • v0.16.0 \u2192 v0.56.0breaking

    Add `const`s for predefined registry keys: `HKCR`, `HKCU`, `HKLM`, `HKU` and `HKCC`.

  • v0.16.0 \u2192 v0.56.0breaking

    Implement `std` traits [`FromRawHandle`](https://doc.rust-lang.org/beta/std/os/windows/io/trait.FromRawHandle.html), [`IntoRawHandle`](https://doc.rust-lang.org/beta/std/os/windows/io/trait.IntoRawHandle.html) and [`AsRawHandle`](https://doc.rust-lang.org/beta/std/os/windows/io/trait.AsRawHandle.html) for `Transaction`.

  • v0.54.0 \u2192 v0.55.0breaking

    Breaking change: Upgrade `windows-sys` to version 0.59 (#77)

  • v0.53.0 \u2192 v0.54.0breaking

    Breaking change: Upgrade `windows-sys` to version 0.52 (closes #63, #70)

  • v0.14.0 \u2192 v0.52.0breaking

    Add `RegKey::rename_subkey()` method (#58)

  • v0.14.0 \u2192 v0.52.0breaking

    Make serialization modules public (#59)

  • v0.14.0 \u2192 v0.52.0breaking

    Fix UB in `FromRegValue` for `u32` and `u64` (#61)

  • v0.12.0 \u2192 v0.51.0breaking

    Add `RegKey::encode_transacted()` method (pullrequest #55), fixes #54)

  • v0.11.0 \u2192 v0.50.0breaking

    Replace deprecated methods from `chrono` (#48)

  • v0.11.0 \u2192 v0.50.0breaking

    Breaking change: Increase minimum supported Rust version to `1.46` since `windows-sys` doesn't compile with older versions

  • v0.4.0 \u2192 v0.5.0breaking

    Documentation fixes (#14)

  • v0.4.0 \u2192 v0.5.0breaking

    Breaking change: features `transactions` and `serialization-serde` are now disabled by default.

  • v0.4.0 \u2192 v0.5.0breaking

    Breaking change: serialization now uses `serde` instead of `rustc-serialize`.

  • v0.4.0 \u2192 v0.5.0breaking

    `winapi` updated to `0.3`.

  • v0.55.0 \u2192 v0.16.0breaking

    Breaking change: serialization now opens the key with `DELETE`, `KEY_ENUMERATE_SUB_KEYS` and `KEY_QUERY_VALUE` permissions in addition to `KEY_CREATE_SUB_KEY` and `KEY_SET_VALUE` used previously. This is required for:

  • v0.55.0 \u2192 v0.16.0breaking

    Implement `std` traits [`FromRawHandle`](https://doc.rust-lang.org/beta/std/os/windows/io/trait.FromRawHandle.html), [`IntoRawHandle`](https://doc.rust-lang.org/beta/std/os/windows/io/trait.IntoRawHandle.html) and [`AsRawHandle`](https://doc.rust-lang.org/beta/std/os/windows/io/trait.AsRawHandle.html) for `Transaction`.

  • v0.55.0 \u2192 v0.16.0breaking

    Add `const`s for predefined registry keys: `HKCR`, `HKCU`, `HKLM`, `HKU` and `HKCC`.

  • v0.55.0 \u2192 v0.16.0breaking

    New `RegKey` methods: `enum_keys_os_string()` and `enum_values_os_string()` return iterators that use `OsString` for key/value names (#80).

  • v0.55.0 \u2192 v0.16.0breaking

    New `RegKey` methods: `encode_destructive()` and `encode_destructive_transacted()` that wipe all subkeys/values of a target key before writing to it (#76).

  • v0.13.0 \u2192 v0.14.0breaking

    Fix UB in `FromRegValue` for `u32` and `u64` (#61)

  • v0.51.0 \u2192 v0.13.0breaking

    Make serialization modules public (#59)

  • v0.51.0 \u2192 v0.13.0breaking

    Add `RegKey::rename_subkey()` method (#58)

  • v0.50.0 \u2192 v0.12.0breaking

    Add `RegKey::encode_transacted()` method (pullrequest #55), fixes #54)

API access

Get this data programmatically \u2014 free, no authentication.

curl https://depscope.dev/api/breaking/cargo/winreg
winreg breaking changes — Cargo migration guide | DepScope