diff --git a/Cargo.lock b/Cargo.lock index eb1becc1f..0ab71916e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -228,7 +228,7 @@ name = "automation" version = "0.1.0" dependencies = [ "duct", - "ohno 0.3.2", + "ohno 0.4.0", "serde", "serde_json", ] @@ -292,21 +292,21 @@ dependencies = [ [[package]] name = "bytesbuf_io" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bytesbuf", "futures", "futures-core", "mutants", "new_zealand", - "ohno 0.3.2", + "ohno 0.4.0", "testing_aids", "trait-variant", ] [[package]] name = "cachet" -version = "0.1.0" +version = "0.2.0" dependencies = [ "alloc_tracker", "anyspawn", @@ -317,7 +317,7 @@ dependencies = [ "dynosaur", "futures", "layered", - "ohno 0.3.2", + "ohno 0.4.0", "opentelemetry", "opentelemetry_sdk", "parking_lot", @@ -336,7 +336,7 @@ dependencies = [ [[package]] name = "cachet_memory" -version = "0.1.0" +version = "0.2.0" dependencies = [ "cachet_tier", "criterion", @@ -344,7 +344,7 @@ dependencies = [ "futures", "moka", "mutants", - "ohno 0.3.2", + "ohno 0.4.0", "thread_aware", "tick", "tokio", @@ -352,7 +352,7 @@ dependencies = [ [[package]] name = "cachet_service" -version = "0.1.0" +version = "0.2.0" dependencies = [ "cachet_tier", "layered", @@ -361,10 +361,10 @@ dependencies = [ [[package]] name = "cachet_tier" -version = "0.1.0" +version = "0.2.0" dependencies = [ "dynosaur", - "ohno 0.3.2", + "ohno 0.4.0", "parking_lot", "recoverable", "tick", @@ -1095,7 +1095,7 @@ dependencies = [ [[package]] name = "http_extensions" -version = "0.3.1" +version = "0.4.0" dependencies = [ "alloc_tracker", "bytes", @@ -1110,7 +1110,7 @@ dependencies = [ "hyper-util", "layered", "mutants", - "ohno 0.3.2", + "ohno 0.4.0", "pin-project", "recoverable", "serde", @@ -1552,7 +1552,7 @@ dependencies = [ [[package]] name = "ohno" -version = "0.3.2" +version = "0.4.0" dependencies = [ "futures", "insta", @@ -1925,7 +1925,7 @@ name = "recoverable" version = "0.1.2" dependencies = [ "insta", - "ohno 0.3.2", + "ohno 0.4.0", "static_assertions", "testing_aids", ] @@ -2080,7 +2080,7 @@ dependencies = [ "jiff", "layered", "mutants", - "ohno 0.3.2", + "ohno 0.4.0", "opentelemetry", "opentelemetry-stdout", "opentelemetry_sdk", @@ -2304,12 +2304,12 @@ dependencies = [ [[package]] name = "templated_uri" -version = "0.1.2" +version = "0.2.0" dependencies = [ "data_privacy", "http", "mutants", - "ohno 0.3.2", + "ohno 0.4.0", "pct-str", "serde", "serde_json", @@ -2336,7 +2336,7 @@ dependencies = [ "darling", "insta", "mutants", - "ohno 0.3.2", + "ohno 0.4.0", "prettyplease", "proc-macro2", "quote", @@ -2442,7 +2442,7 @@ dependencies = [ "insta", "jiff", "mutants", - "ohno 0.3.2", + "ohno 0.4.0", "pin-project-lite", "serde", "serde_core", diff --git a/Cargo.toml b/Cargo.toml index a2b7cbefa..b8bb12fad 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,24 +25,24 @@ homepage = "https://github.com/microsoft/oxidizer" # local dependencies anyspawn = { path = "crates/anyspawn", default-features = false, version = "0.3.0" } bytesbuf = { path = "crates/bytesbuf", default-features = false, version = "0.4.2" } -bytesbuf_io = { path = "crates/bytesbuf_io", default-features = false, version = "0.4.0" } -cachet = { path = "crates/cachet", default-features = false, version = "0.1.0" } -cachet_memory = { path = "crates/cachet_memory", default-features = false, version = "0.1.0" } -cachet_service = { path = "crates/cachet_service", default-features = false, version = "0.1.0" } -cachet_tier = { path = "crates/cachet_tier", default-features = false, version = "0.1.0" } +bytesbuf_io = { path = "crates/bytesbuf_io", default-features = false, version = "0.5.0" } +cachet = { path = "crates/cachet", default-features = false, version = "0.2.0" } +cachet_memory = { path = "crates/cachet_memory", default-features = false, version = "0.2.0" } +cachet_service = { path = "crates/cachet_service", default-features = false, version = "0.2.0" } +cachet_tier = { path = "crates/cachet_tier", default-features = false, version = "0.2.0" } data_privacy = { path = "crates/data_privacy", default-features = false, version = "0.11.0" } data_privacy_macros = { path = "crates/data_privacy_macros", default-features = false, version = "0.9.0" } data_privacy_macros_impl = { path = "crates/data_privacy_macros_impl", default-features = false, version = "0.9.0" } fundle = { path = "crates/fundle", default-features = false, version = "0.3.0" } fundle_macros = { path = "crates/fundle_macros", default-features = false, version = "0.3.0" } fundle_macros_impl = { path = "crates/fundle_macros_impl", default-features = false, version = "0.3.0" } -http_extensions = { path = "crates/http_extensions", default-features = false, version = "0.3.1" } +http_extensions = { path = "crates/http_extensions", default-features = false, version = "0.4.0" } layered = { path = "crates/layered", default-features = false, version = "0.3.0" } -ohno = { path = "crates/ohno", default-features = false, version = "0.3.2" } +ohno = { path = "crates/ohno", default-features = false, version = "0.4.0" } ohno_macros = { path = "crates/ohno_macros", default-features = false, version = "0.3.0" } recoverable = { path = "crates/recoverable", default-features = false, version = "0.1.2" } seatbelt = { path = "crates/seatbelt", default-features = false, version = "0.4.4" } -templated_uri = { path = "crates/templated_uri", default-features = false, version = "0.1.2" } +templated_uri = { path = "crates/templated_uri", default-features = false, version = "0.2.0" } templated_uri_macros = { path = "crates/templated_uri_macros", default-features = false, version = "0.1.1" } templated_uri_macros_impl = { path = "crates/templated_uri_macros_impl", default-features = false, version = "0.1.1" } testing_aids = { path = "crates/testing_aids", default-features = false } diff --git a/crates/bytesbuf_io/CHANGELOG.md b/crates/bytesbuf_io/CHANGELOG.md index ff97a3bfa..b6d5222ff 100644 --- a/crates/bytesbuf_io/CHANGELOG.md +++ b/crates/bytesbuf_io/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## [0.5.0] - 2026-04-20 + +- ⚠️ Breaking + + - bump `ohno` to 0.4.0 + ## [0.3.0] - 2026-02-16 - ✔️ Tasks diff --git a/crates/bytesbuf_io/Cargo.toml b/crates/bytesbuf_io/Cargo.toml index 8bea9e5ab..1d251da04 100644 --- a/crates/bytesbuf_io/Cargo.toml +++ b/crates/bytesbuf_io/Cargo.toml @@ -4,7 +4,7 @@ [package] name = "bytesbuf_io" description = "Asynchronous I/O abstractions expressed via `bytesbuf` types." -version = "0.4.0" +version = "0.5.0" readme = "README.md" keywords = ["oxidizer", "io", "zero-copy", "performance", "async"] categories = [ diff --git a/crates/bytesbuf_io/README.md b/crates/bytesbuf_io/README.md index 379db23b2..b91e72d82 100644 --- a/crates/bytesbuf_io/README.md +++ b/crates/bytesbuf_io/README.md @@ -35,9 +35,9 @@ types that produce or consume streams of bytes. These are in the `testing` modul This crate was developed as part of The Oxidizer Project. Browse this crate's source code. - [__cargo_doc2readme_dependencies_info]: ggGkYW0CYXSEGy4k8ldDFPOhG2VNeXtD5nnKG6EPY6OfW5wBG8g18NOFNdxpYXKEG8wC2qKB5vPMG5c8vZ8ulsvSGwSlXV9Pnjr5GyAAXY8thjNKYWSBgmtieXRlc2J1Zl9pb2UwLjQuMA + [__cargo_doc2readme_dependencies_info]: ggGkYW0CYXSEGy4k8ldDFPOhG2VNeXtD5nnKG6EPY6OfW5wBG8g18NOFNdxpYXKEG8wC2qKB5vPMG5c8vZ8ulsvSGwSlXV9Pnjr5GyAAXY8thjNKYWSBgmtieXRlc2J1Zl9pb2UwLjUuMA [__link0]: https://docs.io/bytesbuf - [__link1]: https://docs.rs/bytesbuf_io/0.4.0/bytesbuf_io/?search=Read - [__link2]: https://docs.rs/bytesbuf_io/0.4.0/bytesbuf_io/?search=Write + [__link1]: https://docs.rs/bytesbuf_io/0.5.0/bytesbuf_io/?search=Read + [__link2]: https://docs.rs/bytesbuf_io/0.5.0/bytesbuf_io/?search=Write [__link3]: https://docs.io/bytesbuf - [__link4]: https://docs.rs/bytesbuf_io/0.4.0/bytesbuf_io/?search=Read + [__link4]: https://docs.rs/bytesbuf_io/0.5.0/bytesbuf_io/?search=Read diff --git a/crates/cachet/CHANGELOG.md b/crates/cachet/CHANGELOG.md index 2fcbf5dd9..bbbd18fce 100644 --- a/crates/cachet/CHANGELOG.md +++ b/crates/cachet/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## [0.2.0] - 2026-04-20 + +- ⚠️ Breaking + + - bump `ohno` to 0.4.0 and `cachet_tier` to 0.2.0 + ## [0.1.0] Initial release. diff --git a/crates/cachet/Cargo.toml b/crates/cachet/Cargo.toml index 35819a7f8..058a620ae 100644 --- a/crates/cachet/Cargo.toml +++ b/crates/cachet/Cargo.toml @@ -4,7 +4,7 @@ [package] name = "cachet" description = "A composable, customizable multi-tier caching library with rich feature support." -version = "0.1.0" +version = "0.2.0" readme = "README.md" keywords = ["oxidizer", "caching", "concurrency"] categories = ["caching", "concurrency"] diff --git a/crates/cachet/README.md b/crates/cachet/README.md index a28fff473..6184c7b4c 100644 --- a/crates/cachet/README.md +++ b/crates/cachet/README.md @@ -240,22 +240,22 @@ Event name: `cache.event` with fields `cache.name`, `cache.operation`, This crate was developed as part of The Oxidizer Project. Browse this crate's source code. - [__cargo_doc2readme_dependencies_info]: ggGkYW0CYXSEGy4k8ldDFPOhG2VNeXtD5nnKG6EPY6OfW5wBG8g18NOFNdxpYXKEGxoy2aS_r_WIG7xeYKGh3m5fG0GpQVALXxi6G6rN-ofywfKRYWSGgmZjYWNoZXRlMC4xLjCCbWNhY2hldF9tZW1vcnllMC4xLjCCbmNhY2hldF9zZXJ2aWNlZTAuMS4wgmtjYWNoZXRfdGllcmUwLjEuMIJkdGlja2UwLjIuMYJpdW5pZmxpZ2h0ZTAuMS4w - [__link0]: https://docs.rs/cachet/0.1.0/cachet/?search=TimeToRefresh + [__cargo_doc2readme_dependencies_info]: ggGkYW0CYXSEGy4k8ldDFPOhG2VNeXtD5nnKG6EPY6OfW5wBG8g18NOFNdxpYXKEGxoy2aS_r_WIG7xeYKGh3m5fG0GpQVALXxi6G6rN-ofywfKRYWSGgmZjYWNoZXRlMC4yLjCCbWNhY2hldF9tZW1vcnllMC4yLjCCbmNhY2hldF9zZXJ2aWNlZTAuMi4wgmtjYWNoZXRfdGllcmUwLjIuMIJkdGlja2UwLjIuMYJpdW5pZmxpZ2h0ZTAuMS4w + [__link0]: https://docs.rs/cachet/0.2.0/cachet/?search=TimeToRefresh [__link1]: https://crates.io/crates/uniflight/0.1.0 - [__link10]: https://docs.rs/cachet_tier/0.1.0/cachet_tier/?search=CacheTier - [__link11]: https://docs.rs/cachet/0.1.0/cachet/?search=FallbackPromotionPolicy - [__link12]: https://docs.rs/cachet/0.1.0/cachet/?search=TimeToRefresh - [__link13]: https://docs.rs/cachet_tier/0.1.0/cachet_tier/?search=Error - [__link14]: https://crates.io/crates/cachet_tier/0.1.0 - [__link15]: https://crates.io/crates/cachet_memory/0.1.0 + [__link10]: https://docs.rs/cachet_tier/0.2.0/cachet_tier/?search=CacheTier + [__link11]: https://docs.rs/cachet/0.2.0/cachet/?search=FallbackPromotionPolicy + [__link12]: https://docs.rs/cachet/0.2.0/cachet/?search=TimeToRefresh + [__link13]: https://docs.rs/cachet_tier/0.2.0/cachet_tier/?search=Error + [__link14]: https://crates.io/crates/cachet_tier/0.2.0 + [__link15]: https://crates.io/crates/cachet_memory/0.2.0 [__link16]: https://docs.rs/moka - [__link17]: https://crates.io/crates/cachet_service/0.1.0 - [__link2]: https://docs.rs/cachet/0.1.0/cachet/?search=CacheBuilder::stampede_protection - [__link3]: https://docs.rs/cachet_tier/0.1.0/cachet_tier/?search=CacheTier - [__link4]: https://docs.rs/cachet_tier/0.1.0/cachet_tier/?search=DynamicCache - [__link5]: https://docs.rs/cachet/0.1.0/cachet/?search=FallbackPromotionPolicy + [__link17]: https://crates.io/crates/cachet_service/0.2.0 + [__link2]: https://docs.rs/cachet/0.2.0/cachet/?search=CacheBuilder::stampede_protection + [__link3]: https://docs.rs/cachet_tier/0.2.0/cachet_tier/?search=CacheTier + [__link4]: https://docs.rs/cachet_tier/0.2.0/cachet_tier/?search=DynamicCache + [__link5]: https://docs.rs/cachet/0.2.0/cachet/?search=FallbackPromotionPolicy [__link6]: https://docs.rs/tick/0.2.1/tick/?search=Clock - [__link7]: https://docs.rs/cachet/0.1.0/cachet/?search=Cache - [__link8]: https://docs.rs/cachet/0.1.0/cachet/?search=CacheBuilder - [__link9]: https://docs.rs/cachet_tier/0.1.0/cachet_tier/?search=CacheEntry + [__link7]: https://docs.rs/cachet/0.2.0/cachet/?search=Cache + [__link8]: https://docs.rs/cachet/0.2.0/cachet/?search=CacheBuilder + [__link9]: https://docs.rs/cachet_tier/0.2.0/cachet_tier/?search=CacheEntry diff --git a/crates/cachet_memory/CHANGELOG.md b/crates/cachet_memory/CHANGELOG.md index 2fcbf5dd9..bbbd18fce 100644 --- a/crates/cachet_memory/CHANGELOG.md +++ b/crates/cachet_memory/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## [0.2.0] - 2026-04-20 + +- ⚠️ Breaking + + - bump `ohno` to 0.4.0 and `cachet_tier` to 0.2.0 + ## [0.1.0] Initial release. diff --git a/crates/cachet_memory/Cargo.toml b/crates/cachet_memory/Cargo.toml index 084f97fbf..56aaff6dd 100644 --- a/crates/cachet_memory/Cargo.toml +++ b/crates/cachet_memory/Cargo.toml @@ -4,7 +4,7 @@ [package] name = "cachet_memory" description = "In-memory cache tier backed by Moka for the cachet caching library." -version = "0.1.0" +version = "0.2.0" readme = "README.md" keywords = ["oxidizer", "caching", "concurrency"] categories = ["caching", "concurrency"] diff --git a/crates/cachet_memory/README.md b/crates/cachet_memory/README.md index 80909725a..730b90b1e 100644 --- a/crates/cachet_memory/README.md +++ b/crates/cachet_memory/README.md @@ -73,11 +73,11 @@ TTL/TTI unset or set them to a sufficiently high ceiling. This crate was developed as part of The Oxidizer Project. Browse this crate's source code. - [__cargo_doc2readme_dependencies_info]: ggGkYW0CYXSEGy4k8ldDFPOhG2VNeXtD5nnKG6EPY6OfW5wBG8g18NOFNdxpYXKEGx97UkpE8tyEG0w3jevrQF8SG5D28UVlbZVEG3A-UY200y_0YWSCgm1jYWNoZXRfbWVtb3J5ZTAuMS4wgmtjYWNoZXRfdGllcmUwLjEuMA - [__link0]: https://docs.rs/cachet_memory/0.1.0/cachet_memory/?search=InMemoryCache - [__link1]: https://docs.rs/cachet_memory/0.1.0/cachet_memory/?search=InMemoryCacheBuilder - [__link2]: https://docs.rs/cachet_memory/0.1.0/cachet_memory/?search=policy::EvictionPolicy - [__link3]: https://docs.rs/cachet_tier/0.1.0/cachet_tier/?search=CacheEntry::expires_after - [__link4]: https://docs.rs/cachet_tier/0.1.0/cachet_tier/?search=CacheEntry::expires_after - [__link5]: https://docs.rs/cachet_memory/0.1.0/cachet_memory/?search=InMemoryCacheBuilder::time_to_live - [__link6]: https://docs.rs/cachet_memory/0.1.0/cachet_memory/?search=InMemoryCacheBuilder::time_to_idle + [__cargo_doc2readme_dependencies_info]: ggGkYW0CYXSEGy4k8ldDFPOhG2VNeXtD5nnKG6EPY6OfW5wBG8g18NOFNdxpYXKEGx97UkpE8tyEG0w3jevrQF8SG5D28UVlbZVEG3A-UY200y_0YWSCgm1jYWNoZXRfbWVtb3J5ZTAuMi4wgmtjYWNoZXRfdGllcmUwLjIuMA + [__link0]: https://docs.rs/cachet_memory/0.2.0/cachet_memory/?search=InMemoryCache + [__link1]: https://docs.rs/cachet_memory/0.2.0/cachet_memory/?search=InMemoryCacheBuilder + [__link2]: https://docs.rs/cachet_memory/0.2.0/cachet_memory/?search=policy::EvictionPolicy + [__link3]: https://docs.rs/cachet_tier/0.2.0/cachet_tier/?search=CacheEntry::expires_after + [__link4]: https://docs.rs/cachet_tier/0.2.0/cachet_tier/?search=CacheEntry::expires_after + [__link5]: https://docs.rs/cachet_memory/0.2.0/cachet_memory/?search=InMemoryCacheBuilder::time_to_live + [__link6]: https://docs.rs/cachet_memory/0.2.0/cachet_memory/?search=InMemoryCacheBuilder::time_to_idle diff --git a/crates/cachet_service/CHANGELOG.md b/crates/cachet_service/CHANGELOG.md index 2fcbf5dd9..f2232aecc 100644 --- a/crates/cachet_service/CHANGELOG.md +++ b/crates/cachet_service/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## [0.2.0] - 2026-04-20 + +- ⚠️ Breaking + + - bump `cachet_tier` to 0.2.0 + ## [0.1.0] Initial release. diff --git a/crates/cachet_service/Cargo.toml b/crates/cachet_service/Cargo.toml index efad944ba..8e099b2cb 100644 --- a/crates/cachet_service/Cargo.toml +++ b/crates/cachet_service/Cargo.toml @@ -4,7 +4,7 @@ [package] name = "cachet_service" description = "Layered service integration for the cachet caching library." -version = "0.1.0" +version = "0.2.0" readme = "README.md" keywords = ["oxidizer", "caching", "concurrency"] categories = ["caching", "concurrency"] diff --git a/crates/cachet_service/README.md b/crates/cachet_service/README.md index 36412f5d9..415b33e1d 100644 --- a/crates/cachet_service/README.md +++ b/crates/cachet_service/README.md @@ -45,7 +45,7 @@ let tier = ServiceAdapter::new(my_service); This crate was developed as part of The Oxidizer Project. Browse this crate's source code. - [__cargo_doc2readme_dependencies_info]: ggGkYW0CYXSEGy4k8ldDFPOhG2VNeXtD5nnKG6EPY6OfW5wBG8g18NOFNdxpYXKEG3K5S_LB5wBuG9aH2I-oE91BG6p757n6ShIyG2QJsgO5MU4kYWSCgm5jYWNoZXRfc2VydmljZWUwLjEuMIJrY2FjaGV0X3RpZXJlMC4xLjA - [__link0]: https://docs.rs/cachet_service/0.1.0/cachet_service/?search=ServiceAdapter - [__link1]: https://docs.rs/cachet_tier/0.1.0/cachet_tier/?search=CacheTier - [__link2]: https://docs.rs/cachet_service/0.1.0/cachet_service/?search=ServiceAdapter + [__cargo_doc2readme_dependencies_info]: ggGkYW0CYXSEGy4k8ldDFPOhG2VNeXtD5nnKG6EPY6OfW5wBG8g18NOFNdxpYXKEG3K5S_LB5wBuG9aH2I-oE91BG6p757n6ShIyG2QJsgO5MU4kYWSCgm5jYWNoZXRfc2VydmljZWUwLjIuMIJrY2FjaGV0X3RpZXJlMC4yLjA + [__link0]: https://docs.rs/cachet_service/0.2.0/cachet_service/?search=ServiceAdapter + [__link1]: https://docs.rs/cachet_tier/0.2.0/cachet_tier/?search=CacheTier + [__link2]: https://docs.rs/cachet_service/0.2.0/cachet_service/?search=ServiceAdapter diff --git a/crates/cachet_tier/CHANGELOG.md b/crates/cachet_tier/CHANGELOG.md index 2fcbf5dd9..9a042d5e8 100644 --- a/crates/cachet_tier/CHANGELOG.md +++ b/crates/cachet_tier/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## [0.2.0] - 2026-04-20 + +- ⚠️ Breaking + + - bump `ohno` to 0.4.0 + ## [0.1.0] Initial release. diff --git a/crates/cachet_tier/Cargo.toml b/crates/cachet_tier/Cargo.toml index 0923a5f06..76979ffd0 100644 --- a/crates/cachet_tier/Cargo.toml +++ b/crates/cachet_tier/Cargo.toml @@ -4,7 +4,7 @@ [package] name = "cachet_tier" description = "Core cache tier trait and abstractions for building cache backends." -version = "0.1.0" +version = "0.2.0" readme = "README.md" keywords = ["oxidizer", "caching", "concurrency"] categories = ["caching", "concurrency"] diff --git a/crates/cachet_tier/README.md b/crates/cachet_tier/README.md index 92a8caa71..c89da5d58 100644 --- a/crates/cachet_tier/README.md +++ b/crates/cachet_tier/README.md @@ -74,10 +74,10 @@ for multi-tier caches with heterogeneous storage backends. This crate was developed as part of The Oxidizer Project. Browse this crate's source code. - [__cargo_doc2readme_dependencies_info]: ggGkYW0CYXSEGy4k8ldDFPOhG2VNeXtD5nnKG6EPY6OfW5wBG8g18NOFNdxpYXKEG0hRqDfWg1oDG5BT1ZI-3omTG5WE4GB0Mg57G-G4ebzGeSk5YWSBgmtjYWNoZXRfdGllcmUwLjEuMA - [__link0]: https://docs.rs/cachet_tier/0.1.0/cachet_tier/?search=CacheTier - [__link1]: https://docs.rs/cachet_tier/0.1.0/cachet_tier/?search=CacheEntry - [__link2]: https://docs.rs/cachet_tier/0.1.0/cachet_tier/?search=Error - [__link3]: https://docs.rs/cachet_tier/0.1.0/cachet_tier/?search=CacheTier - [__link4]: https://docs.rs/cachet_tier/0.1.0/cachet_tier/?search=CacheTier - [__link5]: https://docs.rs/cachet_tier/0.1.0/cachet_tier/?search=DynamicCache + [__cargo_doc2readme_dependencies_info]: ggGkYW0CYXSEGy4k8ldDFPOhG2VNeXtD5nnKG6EPY6OfW5wBG8g18NOFNdxpYXKEG0hRqDfWg1oDG5BT1ZI-3omTG5WE4GB0Mg57G-G4ebzGeSk5YWSBgmtjYWNoZXRfdGllcmUwLjIuMA + [__link0]: https://docs.rs/cachet_tier/0.2.0/cachet_tier/?search=CacheTier + [__link1]: https://docs.rs/cachet_tier/0.2.0/cachet_tier/?search=CacheEntry + [__link2]: https://docs.rs/cachet_tier/0.2.0/cachet_tier/?search=Error + [__link3]: https://docs.rs/cachet_tier/0.2.0/cachet_tier/?search=CacheTier + [__link4]: https://docs.rs/cachet_tier/0.2.0/cachet_tier/?search=CacheTier + [__link5]: https://docs.rs/cachet_tier/0.2.0/cachet_tier/?search=DynamicCache diff --git a/crates/http_extensions/CHANGELOG.md b/crates/http_extensions/CHANGELOG.md index 307273813..f02161e49 100644 --- a/crates/http_extensions/CHANGELOG.md +++ b/crates/http_extensions/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## [0.4.0] - 2026-04-20 + +- ⚠️ Breaking + + - `Labeled::label()` now returns `ErrorLabel` by value instead of `&ErrorLabel` (via `ohno` 0.4.0) + ## [0.3.1] - 2026-04-20 - ✨ Features diff --git a/crates/http_extensions/Cargo.toml b/crates/http_extensions/Cargo.toml index d217e0698..9efbf741f 100644 --- a/crates/http_extensions/Cargo.toml +++ b/crates/http_extensions/Cargo.toml @@ -4,7 +4,7 @@ [package] name = "http_extensions" description = "Shared HTTP types and extension traits for clients and servers." -version = "0.3.1" +version = "0.4.0" readme = "README.md" keywords = ["oxidizer", "http", "extensions", "client", "server"] categories = ["network-programming"] diff --git a/crates/http_extensions/README.md b/crates/http_extensions/README.md index a0836c957..d1c17509e 100644 --- a/crates/http_extensions/README.md +++ b/crates/http_extensions/README.md @@ -170,23 +170,23 @@ for future requests. This makes the crate particularly efficient for high-throug This crate was developed as part of The Oxidizer Project. Browse this crate's source code. - [__cargo_doc2readme_dependencies_info]: ggGkYW0CYXSEGy4k8ldDFPOhG2VNeXtD5nnKG6EPY6OfW5wBG8g18NOFNdxpYXKEG7dZHfOzXCO1G4yXrVZokY8aGy09bmHyxlgGG3QVOINBIZOaYWSFgmVieXRlc2YxLjExLjGCaGJ5dGVzYnVmZTAuNC4ygmRodHRwZTEuNC4wgmlodHRwX2JvZHllMS4wLjGCb2h0dHBfZXh0ZW5zaW9uc2UwLjMuMQ + [__cargo_doc2readme_dependencies_info]: ggGkYW0CYXSEGy4k8ldDFPOhG2VNeXtD5nnKG6EPY6OfW5wBG8g18NOFNdxpYXKEG7dZHfOzXCO1G4yXrVZokY8aGy09bmHyxlgGG3QVOINBIZOaYWSFgmVieXRlc2YxLjExLjGCaGJ5dGVzYnVmZTAuNC4ygmRodHRwZTEuNC4wgmlodHRwX2JvZHllMS4wLjGCb2h0dHBfZXh0ZW5zaW9uc2UwLjQuMA [__link0]: https://crates.io/crates/http/1.4.0 - [__link1]: https://docs.rs/http_extensions/0.3.1/http_extensions/type.HttpRequest.html - [__link10]: https://docs.rs/http_extensions/0.3.1/http_extensions/?search=StatusExt - [__link11]: https://docs.rs/http_extensions/0.3.1/http_extensions/?search=RequestExt - [__link12]: https://docs.rs/http_extensions/0.3.1/http_extensions/?search=ResponseExt - [__link13]: https://docs.rs/http_extensions/0.3.1/http_extensions/?search=HttpRequestExt - [__link14]: https://docs.rs/http_extensions/0.3.1/http_extensions/?search=HeaderMapExt - [__link15]: https://docs.rs/http_extensions/0.3.1/http_extensions/?search=HeaderValueExt + [__link1]: https://docs.rs/http_extensions/0.4.0/http_extensions/type.HttpRequest.html + [__link10]: https://docs.rs/http_extensions/0.4.0/http_extensions/?search=StatusExt + [__link11]: https://docs.rs/http_extensions/0.4.0/http_extensions/?search=RequestExt + [__link12]: https://docs.rs/http_extensions/0.4.0/http_extensions/?search=ResponseExt + [__link13]: https://docs.rs/http_extensions/0.4.0/http_extensions/?search=HttpRequestExt + [__link14]: https://docs.rs/http_extensions/0.4.0/http_extensions/?search=HeaderMapExt + [__link15]: https://docs.rs/http_extensions/0.4.0/http_extensions/?search=HeaderValueExt [__link16]: https://docs.rs/http/1.4.0/http/?search=HeaderValue [__link17]: https://docs.rs/bytes/1.11.1/bytes/?search=Bytes - [__link18]: https://docs.rs/http_extensions/0.3.1/http_extensions/?search=ExtensionsExt + [__link18]: https://docs.rs/http_extensions/0.4.0/http_extensions/?search=ExtensionsExt [__link19]: https://docs.rs/http/1.4.0/http/?search=Extensions - [__link2]: https://docs.rs/http_extensions/0.3.1/http_extensions/type.HttpResponse.html - [__link20]: https://docs.rs/http_extensions/0.3.1/http_extensions/?search=RequestHandler - [__link21]: https://docs.rs/http_extensions/0.3.1/http_extensions/?search=HttpRequestBuilder - [__link22]: https://docs.rs/http_extensions/0.3.1/http_extensions/?search=StatusExt::ensure_success + [__link2]: https://docs.rs/http_extensions/0.4.0/http_extensions/type.HttpResponse.html + [__link20]: https://docs.rs/http_extensions/0.4.0/http_extensions/?search=RequestHandler + [__link21]: https://docs.rs/http_extensions/0.4.0/http_extensions/?search=HttpRequestBuilder + [__link22]: https://docs.rs/http_extensions/0.4.0/http_extensions/?search=StatusExt::ensure_success [__link23]: https://crates.io/crates/http/1.4.0 [__link24]: https://docs.rs/http/1.4.0/http/?search=Request [__link25]: https://docs.rs/http/1.4.0/http/?search=Response @@ -194,12 +194,12 @@ This crate was developed as part of The Oxidizer Project. Br [__link27]: https://docs.rs/http/1.4.0/http/?search=StatusCode [__link28]: https://docs.rs/http/1.4.0/http/?search=HeaderMap [__link29]: https://docs.rs/http_body/1.0.1/http_body/?search=Body - [__link3]: https://docs.rs/http_extensions/0.3.1/http_extensions/?search=HttpBody - [__link30]: https://docs.rs/http_extensions/0.3.1/http_extensions/?search=HttpBodyBuilder + [__link3]: https://docs.rs/http_extensions/0.4.0/http_extensions/?search=HttpBody + [__link30]: https://docs.rs/http_extensions/0.4.0/http_extensions/?search=HttpBodyBuilder [__link31]: https://crates.io/crates/bytesbuf/0.4.2 - [__link4]: https://docs.rs/http_extensions/0.3.1/http_extensions/?search=HttpRequestBuilder - [__link5]: https://docs.rs/http_extensions/0.3.1/http_extensions/?search=HttpResponseBuilder - [__link6]: https://docs.rs/http_extensions/0.3.1/http_extensions/?search=HttpBody - [__link7]: https://docs.rs/http_extensions/0.3.1/http_extensions/?search=HttpBodyBuilder - [__link8]: https://docs.rs/http_extensions/0.3.1/http_extensions/?search=HttpError - [__link9]: https://docs.rs/http_extensions/0.3.1/http_extensions/?search=RequestHandler + [__link4]: https://docs.rs/http_extensions/0.4.0/http_extensions/?search=HttpRequestBuilder + [__link5]: https://docs.rs/http_extensions/0.4.0/http_extensions/?search=HttpResponseBuilder + [__link6]: https://docs.rs/http_extensions/0.4.0/http_extensions/?search=HttpBody + [__link7]: https://docs.rs/http_extensions/0.4.0/http_extensions/?search=HttpBodyBuilder + [__link8]: https://docs.rs/http_extensions/0.4.0/http_extensions/?search=HttpError + [__link9]: https://docs.rs/http_extensions/0.4.0/http_extensions/?search=RequestHandler diff --git a/crates/http_extensions/src/error.rs b/crates/http_extensions/src/error.rs index 0b6ff5e82..e9fef1fb9 100644 --- a/crates/http_extensions/src/error.rs +++ b/crates/http_extensions/src/error.rs @@ -113,7 +113,7 @@ pub type Result = std::result::Result; InvalidStatusCode(label: LABEL_STATUS_CODE_INVALID, recovery: RecoveryInfo::never()), MaxSizeReached(label: LABEL_BODY_SIZE_LIMIT_REACHED, recovery: RecoveryInfo::never()), std::io::Error(label: LABEL_IO, recovery: RecoveryInfo::from(error.kind())), - templated_uri::ValidationError(label: error.label().clone(), recovery: RecoveryInfo::never()) + templated_uri::ValidationError(label: error.label(), recovery: RecoveryInfo::never()) )] pub struct HttpError { label: ErrorLabel, @@ -267,11 +267,11 @@ impl HttpError { #[cfg(test)] pub(crate) fn resolve_error_label(error: &(dyn std::error::Error + 'static)) -> Option { if let Some(err) = error.downcast_ref::() { - return Some(err.label().clone()); + return Some(err.label()); } if let Some(err) = error.downcast_ref::() { - return Some(err.label().clone()); + return Some(err.label()); } if let Some(err) = error.downcast_ref::() { @@ -289,8 +289,8 @@ impl Recovery for HttpError { } impl Labeled for HttpError { - fn label(&self) -> &ErrorLabel { - &self.label + fn label(&self) -> ErrorLabel { + self.label.clone() } } diff --git a/crates/http_extensions/src/json.rs b/crates/http_extensions/src/json.rs index 5ee8cc582..d78b9c9ba 100644 --- a/crates/http_extensions/src/json.rs +++ b/crates/http_extensions/src/json.rs @@ -53,8 +53,8 @@ impl JsonError { } impl Labeled for JsonError { - fn label(&self) -> &ErrorLabel { - &self.label + fn label(&self) -> ErrorLabel { + self.label.clone() } } diff --git a/crates/ohno/CHANGELOG.md b/crates/ohno/CHANGELOG.md index 2ae2e8514..8f6d7f6aa 100644 --- a/crates/ohno/CHANGELOG.md +++ b/crates/ohno/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## [0.4.0] - 2026-04-20 + +- ⚠️ Breaking + + - `Labeled::label()` now returns `ErrorLabel` by value instead of `&ErrorLabel` + ## [0.3.2] - 2026-04-15 - ✨ Features diff --git a/crates/ohno/Cargo.toml b/crates/ohno/Cargo.toml index 4f19af84a..67439b6c2 100644 --- a/crates/ohno/Cargo.toml +++ b/crates/ohno/Cargo.toml @@ -4,7 +4,7 @@ [package] name = "ohno" description = "High-quality Rust error handling." -version = "0.3.2" +version = "0.4.0" readme = "README.md" keywords = ["oxidizer", "error", "backtrace"] categories = ["data-structures"] diff --git a/crates/ohno/README.md b/crates/ohno/README.md index 6da7ba709..fb206847a 100644 --- a/crates/ohno/README.md +++ b/crates/ohno/README.md @@ -292,25 +292,25 @@ uniformly via [`Labeled::label`][__link21]. This crate was developed as part of The Oxidizer Project. Browse this crate's source code. - [__cargo_doc2readme_dependencies_info]: ggGkYW0CYXSEGy4k8ldDFPOhG2VNeXtD5nnKG6EPY6OfW5wBG8g18NOFNdxpYXKEG6wnfcY2uiFGG0Xrr3B-7vuMGx9RE6mpuHhQGxPVenE9RhyaYWSCgmRvaG5vZTAuMy4ygmtvaG5vX21hY3Jvc2UwLjMuMA + [__cargo_doc2readme_dependencies_info]: ggGkYW0CYXSEGy4k8ldDFPOhG2VNeXtD5nnKG6EPY6OfW5wBG8g18NOFNdxpYXKEG6wnfcY2uiFGG0Xrr3B-7vuMGx9RE6mpuHhQGxPVenE9RhyaYWSCgmRvaG5vZTAuNC4wgmtvaG5vX21hY3Jvc2UwLjMuMA [__link0]: https://doc.rust-lang.org/stable/std/?search=fmt::Display [__link1]: https://doc.rust-lang.org/stable/std/?search=fmt::Debug [__link10]: https://doc.rust-lang.org/stable/std/macro.unreachable.html [__link11]: https://docs.rs/ohno_macros/0.3.0/ohno_macros/?search=enrich_err [__link12]: https://docs.rs/ohno_macros/0.3.0/ohno_macros/?search=enrich_err - [__link13]: https://docs.rs/ohno/0.3.2/ohno/?search=Enrichable - [__link14]: https://docs.rs/ohno/0.3.2/ohno/?search=AppError - [__link15]: https://docs.rs/ohno/0.3.2/ohno/?search=AppError - [__link16]: https://docs.rs/ohno/0.3.2/ohno/?search=ErrorLabel - [__link17]: https://docs.rs/ohno/0.3.2/ohno/?search=ErrorLabel::from_error_chain + [__link13]: https://docs.rs/ohno/0.4.0/ohno/?search=Enrichable + [__link14]: https://docs.rs/ohno/0.4.0/ohno/?search=AppError + [__link15]: https://docs.rs/ohno/0.4.0/ohno/?search=AppError + [__link16]: https://docs.rs/ohno/0.4.0/ohno/?search=ErrorLabel + [__link17]: https://docs.rs/ohno/0.4.0/ohno/?search=ErrorLabel::from_error_chain [__link18]: https://doc.rust-lang.org/stable/std/?search=error::Error::source - [__link19]: https://docs.rs/ohno/0.3.2/ohno/?search=ErrorLabel - [__link2]: https://docs.rs/ohno/0.3.2/ohno/?search=ErrorExt - [__link20]: https://docs.rs/ohno/0.3.2/ohno/?search=Labeled - [__link21]: https://docs.rs/ohno/0.3.2/ohno/?search=Labeled::label - [__link3]: https://docs.rs/ohno/0.3.2/ohno/?search=OhnoCore - [__link4]: https://docs.rs/ohno/0.3.2/ohno/?search=AppError - [__link5]: https://docs.rs/ohno/0.3.2/ohno/?search=OhnoCore + [__link19]: https://docs.rs/ohno/0.4.0/ohno/?search=ErrorLabel + [__link2]: https://docs.rs/ohno/0.4.0/ohno/?search=ErrorExt + [__link20]: https://docs.rs/ohno/0.4.0/ohno/?search=Labeled + [__link21]: https://docs.rs/ohno/0.4.0/ohno/?search=Labeled::label + [__link3]: https://docs.rs/ohno/0.4.0/ohno/?search=OhnoCore + [__link4]: https://docs.rs/ohno/0.4.0/ohno/?search=AppError + [__link5]: https://docs.rs/ohno/0.4.0/ohno/?search=OhnoCore [__link6]: https://doc.rust-lang.org/stable/std/?search=error::Error [__link7]: https://doc.rust-lang.org/stable/std/?search=fmt::Display [__link8]: https://doc.rust-lang.org/stable/std/?search=fmt::Debug diff --git a/crates/ohno/examples/label.rs b/crates/ohno/examples/label.rs index 48b0eef18..fa0a14cf9 100644 --- a/crates/ohno/examples/label.rs +++ b/crates/ohno/examples/label.rs @@ -17,8 +17,8 @@ impl ApiError { } impl Labeled for ApiError { - fn label(&self) -> &ErrorLabel { - &self.label + fn label(&self) -> ErrorLabel { + self.label.clone() } } @@ -36,7 +36,7 @@ fn report(error: &ApiError) { } if let Some(e) = e.downcast_ref::() { - return Some(e.label().clone()); + return Some(e.label()); } None diff --git a/crates/ohno/src/error_label.rs b/crates/ohno/src/error_label.rs index 5d238741e..2e3225d0a 100644 --- a/crates/ohno/src/error_label.rs +++ b/crates/ohno/src/error_label.rs @@ -10,7 +10,7 @@ use std::iter::successors; /// Trait for errors that carry an [`ErrorLabel`]. pub trait Labeled { /// Returns the label attached to this error. - fn label(&self) -> &ErrorLabel; + fn label(&self) -> ErrorLabel; } /// A low-cardinality label for an error, useful for metrics and logging. diff --git a/crates/templated_uri/CHANGELOG.md b/crates/templated_uri/CHANGELOG.md index 276e24947..6794ae5f1 100644 --- a/crates/templated_uri/CHANGELOG.md +++ b/crates/templated_uri/CHANGELOG.md @@ -1,4 +1,10 @@ # Changelog +## [0.2.0] - 2026-04-20 + +- ⚠️ Breaking + + - `Labeled::label()` now returns `ErrorLabel` by value instead of `&ErrorLabel` (via `ohno` 0.4.0) + ## [0.1.2] - 2026-04-16 - ✨ Features diff --git a/crates/templated_uri/Cargo.toml b/crates/templated_uri/Cargo.toml index dfd9a2e2a..e02e47c2a 100644 --- a/crates/templated_uri/Cargo.toml +++ b/crates/templated_uri/Cargo.toml @@ -4,7 +4,7 @@ [package] name = "templated_uri" description = "Standards-compliant URI handling with templating, safety validation, and data classification" -version = "0.1.2" +version = "0.2.0" readme = "README.md" keywords = ["oxidizer", "url", "parsing", "templates", "uri"] categories = ["encoding", "parser-implementations", "template-engine", "web-programming"] diff --git a/crates/templated_uri/README.md b/crates/templated_uri/README.md index d569daf18..9458cbbf2 100644 --- a/crates/templated_uri/README.md +++ b/crates/templated_uri/README.md @@ -168,19 +168,19 @@ and servers based on [`hyper`][__link13] like [`reqwest`][__link14]. This crate was developed as part of The Oxidizer Project. Browse this crate's source code. - [__cargo_doc2readme_dependencies_info]: ggGkYW0CYXSEGy4k8ldDFPOhG2VNeXtD5nnKG6EPY6OfW5wBG8g18NOFNdxpYXKEGyftk28CR_jhG9_WxkUHtfBdG9giB010pVAzGwCsTyFCPqO3YWSCgmRodHRwZTEuNC4wgm10ZW1wbGF0ZWRfdXJpZTAuMS4y - [__link0]: https://docs.rs/templated_uri/0.1.2/templated_uri/?search=uri::Uri - [__link1]: https://docs.rs/templated_uri/0.1.2/templated_uri/?search=BaseUri + [__cargo_doc2readme_dependencies_info]: ggGkYW0CYXSEGy4k8ldDFPOhG2VNeXtD5nnKG6EPY6OfW5wBG8g18NOFNdxpYXKEGyftk28CR_jhG9_WxkUHtfBdG9giB010pVAzGwCsTyFCPqO3YWSCgmRodHRwZTEuNC4wgm10ZW1wbGF0ZWRfdXJpZTAuMi4w + [__link0]: https://docs.rs/templated_uri/0.2.0/templated_uri/?search=uri::Uri + [__link1]: https://docs.rs/templated_uri/0.2.0/templated_uri/?search=BaseUri [__link10]: https://docs.rs/http/latest/http/ - [__link11]: https://docs.rs/templated_uri/0.1.2/templated_uri/?search=uri::Uri + [__link11]: https://docs.rs/templated_uri/0.2.0/templated_uri/?search=uri::Uri [__link12]: https://docs.rs/http/1.4.0/http/?search=Uri [__link13]: https://docs.rs/hyper/latest/hyper/ [__link14]: https://docs.rs/reqwest/latest/reqwest/ - [__link2]: https://docs.rs/templated_uri/0.1.2/templated_uri/?search=BasePath - [__link3]: https://docs.rs/templated_uri/0.1.2/templated_uri/?search=TemplatedPathAndQuery - [__link4]: https://docs.rs/templated_uri/0.1.2/templated_uri/?search=UriSafe - [__link5]: https://docs.rs/templated_uri/0.1.2/templated_uri/?search=UriSafeString - [__link6]: https://docs.rs/templated_uri/0.1.2/templated_uri/?search=UriSafe - [__link7]: https://docs.rs/templated_uri/0.1.2/templated_uri/?search=UriSafeString + [__link2]: https://docs.rs/templated_uri/0.2.0/templated_uri/?search=BasePath + [__link3]: https://docs.rs/templated_uri/0.2.0/templated_uri/?search=TemplatedPathAndQuery + [__link4]: https://docs.rs/templated_uri/0.2.0/templated_uri/?search=UriSafe + [__link5]: https://docs.rs/templated_uri/0.2.0/templated_uri/?search=UriSafeString + [__link6]: https://docs.rs/templated_uri/0.2.0/templated_uri/?search=UriSafe + [__link7]: https://docs.rs/templated_uri/0.2.0/templated_uri/?search=UriSafeString [__link8]: https://datatracker.ietf.org/doc/html/rfc6570 - [__link9]: https://docs.rs/templated_uri/0.1.2/templated_uri/?search=UriParam + [__link9]: https://docs.rs/templated_uri/0.2.0/templated_uri/?search=UriParam diff --git a/crates/templated_uri/src/error.rs b/crates/templated_uri/src/error.rs index 0842e4109..98fce9605 100644 --- a/crates/templated_uri/src/error.rs +++ b/crates/templated_uri/src/error.rs @@ -30,8 +30,8 @@ impl ValidationError { } impl Labeled for ValidationError { - fn label(&self) -> &ErrorLabel { - &self.label + fn label(&self) -> ErrorLabel { + self.label.clone() } }