refactor(stub): always use std Mutex (#1091)
This commit is contained in:
@@ -43,13 +43,11 @@
|
|||||||
use std::{
|
use std::{
|
||||||
error::Error as StdError,
|
error::Error as StdError,
|
||||||
fmt,
|
fmt,
|
||||||
sync::{Arc, Mutex as StdMutex},
|
sync::{Arc, Mutex},
|
||||||
};
|
};
|
||||||
|
|
||||||
#[cfg(any(feature = "tokio1", feature = "async-std1"))]
|
#[cfg(any(feature = "tokio1", feature = "async-std1"))]
|
||||||
use async_trait::async_trait;
|
use async_trait::async_trait;
|
||||||
#[cfg(any(feature = "tokio1", feature = "async-std1"))]
|
|
||||||
use futures_util::lock::Mutex as FuturesMutex;
|
|
||||||
|
|
||||||
#[cfg(any(feature = "tokio1", feature = "async-std1"))]
|
#[cfg(any(feature = "tokio1", feature = "async-std1"))]
|
||||||
use crate::AsyncTransport;
|
use crate::AsyncTransport;
|
||||||
@@ -72,7 +70,7 @@ impl StdError for Error {}
|
|||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct StubTransport {
|
pub struct StubTransport {
|
||||||
response: Result<(), Error>,
|
response: Result<(), Error>,
|
||||||
message_log: Arc<StdMutex<Vec<(Envelope, String)>>>,
|
message_log: Arc<Mutex<Vec<(Envelope, String)>>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// This transport logs messages and always returns the given response
|
/// This transport logs messages and always returns the given response
|
||||||
@@ -81,7 +79,7 @@ pub struct StubTransport {
|
|||||||
#[cfg_attr(docsrs, doc(cfg(any(feature = "tokio1", feature = "async-std1"))))]
|
#[cfg_attr(docsrs, doc(cfg(any(feature = "tokio1", feature = "async-std1"))))]
|
||||||
pub struct AsyncStubTransport {
|
pub struct AsyncStubTransport {
|
||||||
response: Result<(), Error>,
|
response: Result<(), Error>,
|
||||||
message_log: Arc<FuturesMutex<Vec<(Envelope, String)>>>,
|
message_log: Arc<Mutex<Vec<(Envelope, String)>>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl StubTransport {
|
impl StubTransport {
|
||||||
@@ -89,7 +87,7 @@ impl StubTransport {
|
|||||||
pub fn new(response: Result<(), Error>) -> Self {
|
pub fn new(response: Result<(), Error>) -> Self {
|
||||||
Self {
|
Self {
|
||||||
response,
|
response,
|
||||||
message_log: Arc::new(StdMutex::new(vec![])),
|
message_log: Arc::new(Mutex::new(vec![])),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -97,7 +95,7 @@ impl StubTransport {
|
|||||||
pub fn new_ok() -> Self {
|
pub fn new_ok() -> Self {
|
||||||
Self {
|
Self {
|
||||||
response: Ok(()),
|
response: Ok(()),
|
||||||
message_log: Arc::new(StdMutex::new(vec![])),
|
message_log: Arc::new(Mutex::new(vec![])),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -105,7 +103,7 @@ impl StubTransport {
|
|||||||
pub fn new_error() -> Self {
|
pub fn new_error() -> Self {
|
||||||
Self {
|
Self {
|
||||||
response: Err(Error),
|
response: Err(Error),
|
||||||
message_log: Arc::new(StdMutex::new(vec![])),
|
message_log: Arc::new(Mutex::new(vec![])),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -124,7 +122,7 @@ impl AsyncStubTransport {
|
|||||||
pub fn new(response: Result<(), Error>) -> Self {
|
pub fn new(response: Result<(), Error>) -> Self {
|
||||||
Self {
|
Self {
|
||||||
response,
|
response,
|
||||||
message_log: Arc::new(FuturesMutex::new(vec![])),
|
message_log: Arc::new(Mutex::new(vec![])),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -132,7 +130,7 @@ impl AsyncStubTransport {
|
|||||||
pub fn new_ok() -> Self {
|
pub fn new_ok() -> Self {
|
||||||
Self {
|
Self {
|
||||||
response: Ok(()),
|
response: Ok(()),
|
||||||
message_log: Arc::new(FuturesMutex::new(vec![])),
|
message_log: Arc::new(Mutex::new(vec![])),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -140,14 +138,14 @@ impl AsyncStubTransport {
|
|||||||
pub fn new_error() -> Self {
|
pub fn new_error() -> Self {
|
||||||
Self {
|
Self {
|
||||||
response: Err(Error),
|
response: Err(Error),
|
||||||
message_log: Arc::new(FuturesMutex::new(vec![])),
|
message_log: Arc::new(Mutex::new(vec![])),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Return all logged messages sent using [`AsyncTransport::send_raw`]
|
/// Return all logged messages sent using [`AsyncTransport::send_raw`]
|
||||||
#[cfg(any(feature = "tokio1", feature = "async-std1"))]
|
#[cfg(any(feature = "tokio1", feature = "async-std1"))]
|
||||||
pub async fn messages(&self) -> Vec<(Envelope, String)> {
|
pub async fn messages(&self) -> Vec<(Envelope, String)> {
|
||||||
self.message_log.lock().await.clone()
|
self.message_log.lock().unwrap().clone()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -173,7 +171,7 @@ impl AsyncTransport for AsyncStubTransport {
|
|||||||
async fn send_raw(&self, envelope: &Envelope, email: &[u8]) -> Result<Self::Ok, Self::Error> {
|
async fn send_raw(&self, envelope: &Envelope, email: &[u8]) -> Result<Self::Ok, Self::Error> {
|
||||||
self.message_log
|
self.message_log
|
||||||
.lock()
|
.lock()
|
||||||
.await
|
.unwrap()
|
||||||
.push((envelope.clone(), String::from_utf8_lossy(email).into()));
|
.push((envelope.clone(), String::from_utf8_lossy(email).into()));
|
||||||
self.response
|
self.response
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user