maxminddb breaking changes
cargo5 curated breaking changes across major versions of maxminddb. Use this as a migration checklist before bumping dependencies.
- 0.25.0 \u2192 0.26.0breaking
**BREAKING CHANGE:** The `MaxMindDBError` enum has been renamed `MaxMindDbError` and variants have been renamed and refactored. For example, `IoError` is now `Io`, `InvalidDatabaseError` is now `InvalidDatabase`, `DecodingError` is now `Decoding`, `InvalidNetworkError` is now `InvalidNetwork`. The `MapError` variant has been replaced by `Mmap` (under the `mmap` feature flag). Code explicitly matching on the old variant names must be updated.
- 0.25.0 \u2192 0.26.0breaking
**BREAKING CHANGE:** `MaxMindDbError` no longer implements `PartialEq`. This is because underlying error types like `std::io::Error` (now wrapped by the `Io` and `Mmap` variants) do not implement `PartialEq`. Code comparing errors directly using `==` or `assert_eq!` must be updated, typically by using `matches!` or by matching on the error kind and potentially its contents.
- 0.25.0 \u2192 0.26.0breaking
Refactored `MaxMindDbError` handling using the `thiserror` crate. Variants like `Io`, `Mmap`, and `InvalidNetwork` now directly wrap the underlying error types (`std::io::Error`, `ipnetwork::IpNetworkError`).
- 0.25.0 \u2192 0.26.0breaking
Errors wrapping underlying types (`Io`, `Mmap`, `InvalidNetwork`) now correctly implement `std::error::Error::source()`, allowing inspection of the original cause.
- 0.25.0 \u2192 0.26.0breaking
The `Display` implementation for `MaxMindDbError` has been refined to generally show only the specific error details, often including the message from the source error, rather than prefixing with the variant name.
Get this data programmatically \u2014 free, no authentication.
curl https://depscope.dev/api/breaking/cargo/maxminddb