fix(ci): gate event crate doctest behind mem feature and apply rustfmt
The crate-root doctest used InMemoryEventBus/TypedEventBus (gated behind
the 'mem' feature), so `cargo test -p mytheclipse-event --no-default-features
--features amqp|nats` failed to compile the doctest (E0432). The example is
now no_run with the mem-dependent imports inside a #[cfg(feature="mem")]
main, so it compiles (and runs) when mem is on and degrades to an empty main
when off.
Also apply rustfmt to mytheclipse-config/dynamic.rs and
mytheclipse-storage/{gcs,s3}.rs to satisfy cargo fmt --all --check.
This commit is contained in:
@@ -49,7 +49,10 @@ impl<T: Config + Clone> DynamicConfig<T> {
|
|||||||
|
|
||||||
/// Replaces the current value and notifies subscribers.
|
/// Replaces the current value and notifies subscribers.
|
||||||
pub fn set(&self, new: T) {
|
pub fn set(&self, new: T) {
|
||||||
*self.inner.write().expect("mytheclipse-config: RwLock poisoned") = new;
|
*self
|
||||||
|
.inner
|
||||||
|
.write()
|
||||||
|
.expect("mytheclipse-config: RwLock poisoned") = new;
|
||||||
let _ = self.tx.send(());
|
let _ = self.tx.send(());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,20 +15,27 @@
|
|||||||
//!
|
//!
|
||||||
//! ## Example
|
//! ## Example
|
||||||
//!
|
//!
|
||||||
//! ```
|
//! The in-memory + typed bus (`mem` feature, on by default):
|
||||||
//! use mytheclipse_event::{EventBus, InMemoryEventBus, TypedEventBus};
|
//!
|
||||||
|
//! ```no_run
|
||||||
//! use serde::{Deserialize, Serialize};
|
//! use serde::{Deserialize, Serialize};
|
||||||
//!
|
//!
|
||||||
//! #[derive(Debug, Serialize, Deserialize, PartialEq)]
|
//! #[derive(Debug, Serialize, Deserialize, PartialEq)]
|
||||||
//! struct OrderCreated { id: u64 }
|
//! struct OrderCreated { id: u64 }
|
||||||
//!
|
//!
|
||||||
//! # #[tokio::main] async fn main() {
|
//! #[cfg(feature = "mem")]
|
||||||
//! let bus = TypedEventBus::new(InMemoryEventBus::default());
|
//! #[tokio::main]
|
||||||
//! let mut sub = bus.subscribe::<OrderCreated>("orders").await.unwrap();
|
//! async fn main() {
|
||||||
//! bus.publish("orders", &OrderCreated { id: 42 }).await.unwrap();
|
//! use mytheclipse_event::{EventBus, InMemoryEventBus, TypedEventBus};
|
||||||
//! let event = sub.recv().await.unwrap();
|
//! let bus = TypedEventBus::new(InMemoryEventBus::default());
|
||||||
//! assert_eq!(event, OrderCreated { id: 42 });
|
//! let mut sub = bus.subscribe::<OrderCreated>("orders").await.unwrap();
|
||||||
//! # }
|
//! bus.publish("orders", &OrderCreated { id: 42 }).await.unwrap();
|
||||||
|
//! let event = sub.recv().await.unwrap();
|
||||||
|
//! assert_eq!(event, OrderCreated { id: 42 });
|
||||||
|
//! }
|
||||||
|
//!
|
||||||
|
//! #[cfg(not(feature = "mem"))]
|
||||||
|
//! fn main() {}
|
||||||
//! ```
|
//! ```
|
||||||
|
|
||||||
pub mod traits;
|
pub mod traits;
|
||||||
|
|||||||
@@ -160,6 +160,9 @@ mod tests {
|
|||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
assert_eq!(data, b"hello gcs");
|
assert_eq!(data, b"hello gcs");
|
||||||
storage.delete("mytheclipse-storage-test.txt").await.unwrap();
|
storage
|
||||||
|
.delete("mytheclipse-storage-test.txt")
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,7 +52,8 @@ impl S3Storage {
|
|||||||
access_key: &str,
|
access_key: &str,
|
||||||
secret_key: &str,
|
secret_key: &str,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
let credentials = Credentials::new(access_key, secret_key, None, None, "mytheclipse-storage");
|
let credentials =
|
||||||
|
Credentials::new(access_key, secret_key, None, None, "mytheclipse-storage");
|
||||||
let config = aws_sdk_s3::Config::builder()
|
let config = aws_sdk_s3::Config::builder()
|
||||||
.region(Region::new(region.to_string()))
|
.region(Region::new(region.to_string()))
|
||||||
.endpoint_url(endpoint)
|
.endpoint_url(endpoint)
|
||||||
@@ -322,13 +323,19 @@ mod tests {
|
|||||||
.await;
|
.await;
|
||||||
|
|
||||||
storage
|
storage
|
||||||
.put("mytheclipse-storage-test.txt", bytes_stream(b"hello s3".to_vec()))
|
.put(
|
||||||
|
"mytheclipse-storage-test.txt",
|
||||||
|
bytes_stream(b"hello s3".to_vec()),
|
||||||
|
)
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
let data = read_to_vec(storage.get("mytheclipse-storage-test.txt").await.unwrap())
|
let data = read_to_vec(storage.get("mytheclipse-storage-test.txt").await.unwrap())
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
assert_eq!(data, b"hello s3");
|
assert_eq!(data, b"hello s3");
|
||||||
storage.delete("mytheclipse-storage-test.txt").await.unwrap();
|
storage
|
||||||
|
.delete("mytheclipse-storage-test.txt")
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user