fix(ci): gate cache & storage crate doctests behind their features
CI / Rustfmt (push) Canceled after 0s
CI / Clippy (push) Canceled after 0s
CI / Test (workspace all features) (push) Canceled after 0s
CI / Test (workspace default features) (push) Canceled after 0s
CI / Test (mytheclipse / bg only) (push) Canceled after 0s
CI / Test (mytheclipse / compute only) (push) Canceled after 0s
CI / Test (mytheclipse / io only) (push) Canceled after 0s
CI / Test (mytheclipse / lifecycle only) (push) Canceled after 0s
CI / Test (mytheclipse / observability only) (push) Canceled after 0s
CI / Test (mytheclipse / resiliency only) (push) Canceled after 0s
CI / Test (mytheclipse / traffic only) (push) Canceled after 0s
CI / Test (mytheclipse-cache / l2-redis) (push) Canceled after 0s
CI / Test (mytheclipse-cache / l1-moka) (push) Canceled after 0s
CI / Test (mytheclipse-cache / default) (push) Canceled after 0s
CI / Test (mytheclipse-config / default) (push) Canceled after 0s
CI / Test (mytheclipse-crypto / default) (push) Canceled after 0s
CI / Test (mytheclipse-event / amqp) (push) Canceled after 0s
CI / Test (mytheclipse-event / nats) (push) Canceled after 0s
CI / Test (mytheclipse-event / default (mem)) (push) Canceled after 0s
CI / Test (mytheclipse-storage / gcs) (push) Canceled after 0s
CI / Test (mytheclipse-storage / s3) (push) Canceled after 0s
CI / Test (mytheclipse-storage / default (local)) (push) Canceled after 0s
CI / Run mytheclipse example (push) Canceled after 0s
CI / Docs check (push) Canceled after 0s
CI / Cargo package dry-run (mytheclipse) (push) Canceled after 0s
CI / Cargo package dry-run (mytheclipse-cache) (push) Canceled after 0s
CI / Cargo package dry-run (mytheclipse-config) (push) Canceled after 0s
CI / Cargo package dry-run (mytheclipse-crypto) (push) Canceled after 0s
CI / Cargo package dry-run (mytheclipse-event) (push) Canceled after 0s
CI / Cargo package dry-run (mytheclipse-storage) (push) Canceled after 0s
Release / Semantic Release (push) Canceled after 0s

Same E0432 class as mytheclipse-event: the crate-root doctests referenced
feature-gated types that are absent in reduced-feature test builds flagged by
the CI matrix.

- mytheclipse-cache: example used MemoryCache (l1-memory) plus
  MultiLayerCache/CacheAside (cache-aside); the l1-moka and l2-redis builds
  (which don't enable cache-aside) failed the doctest. Gated the body behind
  all(l1-memory, cache-aside) with a no-op fallback.
- mytheclipse-storage: example used LocalFileStorage (local feature); the
  gcs and s3 builds failed the doctest. Gated the body behind the local
  feature with a no-op fallback.

Examples remain compile-checked & runnable under default features.
This commit is contained in:
asepharyana
2026-08-28 22:49:39 +07:00
parent 52d9e1e93e
commit 5717f8aaaa
2 changed files with 16 additions and 4 deletions
+6 -1
View File
@@ -17,9 +17,12 @@
//! //!
//! ## Example //! ## Example
//! //!
//! Multi-layer + cache-aside composition (default features):
//!
//! ```no_run //! ```no_run
//! use mytheclipse_cache::{Cache, MemoryCache, MultiLayerCache, CacheAside}; //! # #[cfg(all(feature = "l1-memory", feature = "cache-aside"))]
//! # async fn run() { //! # async fn run() {
//! use mytheclipse_cache::{Cache, MemoryCache, MultiLayerCache, CacheAside};
//! let l1 = MemoryCache::new(); //! let l1 = MemoryCache::new();
//! let l2 = MemoryCache::new(); // in a real app: a RedisCache //! let l2 = MemoryCache::new(); // in a real app: a RedisCache
//! let cache = MultiLayerCache::new(l1, l2); //! let cache = MultiLayerCache::new(l1, l2);
@@ -34,6 +37,8 @@
//! ); //! );
//! let _v = aside.get("orders:42").await.unwrap(); //! let _v = aside.get("orders:42").await.unwrap();
//! # } //! # }
//! # #[cfg(not(all(feature = "l1-memory", feature = "cache-aside")))]
//! # fn run() {}
//! ``` //! ```
#![forbid(unsafe_code)] #![forbid(unsafe_code)]
+10 -3
View File
@@ -15,15 +15,22 @@
//! //!
//! ## Example //! ## Example
//! //!
//! ``` //! Local disk storage (`local` feature, default):
//! use mytheclipse_storage::{LocalFileStorage, StorageDriver, bytes_stream, read_to_vec}; //!
//! # #[tokio::main] async fn main() { //! ```no_run
//! use mytheclipse_storage::{StorageDriver, bytes_stream, read_to_vec};
//! # #[cfg(feature = "local")]
//! # #[tokio::main]
//! # async fn main() {
//! use mytheclipse_storage::LocalFileStorage;
//! # let dir = tempfile::tempdir().unwrap(); //! # let dir = tempfile::tempdir().unwrap();
//! let storage = LocalFileStorage::new(dir.path()); //! let storage = LocalFileStorage::new(dir.path());
//! storage.put("hello.txt", bytes_stream(b"hi".to_vec())).await.unwrap(); //! storage.put("hello.txt", bytes_stream(b"hi".to_vec())).await.unwrap();
//! let data = read_to_vec(storage.get("hello.txt").await.unwrap()).await.unwrap(); //! let data = read_to_vec(storage.get("hello.txt").await.unwrap()).await.unwrap();
//! assert_eq!(data, b"hi"); //! assert_eq!(data, b"hi");
//! # } //! # }
//! # #[cfg(not(feature = "local"))]
//! # fn main() {}
//! ``` //! ```
pub mod traits; pub mod traits;