Add Send + 'static bounds to cache deserialization (#10352)
This commit is contained in:
@@ -40,7 +40,7 @@ pub trait Cacheable: Sized {
|
|||||||
///
|
///
|
||||||
/// Typical use of this is for wrapper types used to provide blanket trait
|
/// Typical use of this is for wrapper types used to provide blanket trait
|
||||||
/// impls without hitting overlapping impl problems.
|
/// impls without hitting overlapping impl problems.
|
||||||
type Target;
|
type Target: Send + 'static;
|
||||||
|
|
||||||
/// Deserialize a value from bytes aligned to a 16-byte boundary.
|
/// Deserialize a value from bytes aligned to a 16-byte boundary.
|
||||||
fn from_aligned_bytes(bytes: AlignedVec) -> Result<Self::Target, Error>;
|
fn from_aligned_bytes(bytes: AlignedVec) -> Result<Self::Target, Error>;
|
||||||
@@ -58,7 +58,7 @@ pub(crate) struct SerdeCacheable<T> {
|
|||||||
inner: T,
|
inner: T,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<T: Serialize + DeserializeOwned> Cacheable for SerdeCacheable<T> {
|
impl<T: Serialize + DeserializeOwned + Send + 'static> Cacheable for SerdeCacheable<T> {
|
||||||
type Target = T;
|
type Target = T;
|
||||||
|
|
||||||
fn from_aligned_bytes(bytes: AlignedVec) -> Result<T, Error> {
|
fn from_aligned_bytes(bytes: AlignedVec) -> Result<T, Error> {
|
||||||
@@ -79,7 +79,7 @@ impl<T: Serialize + DeserializeOwned> Cacheable for SerdeCacheable<T> {
|
|||||||
/// All `OwnedArchive` values are cacheable.
|
/// All `OwnedArchive` values are cacheable.
|
||||||
impl<A> Cacheable for OwnedArchive<A>
|
impl<A> Cacheable for OwnedArchive<A>
|
||||||
where
|
where
|
||||||
A: rkyv::Archive + for<'a> rkyv::Serialize<crate::rkyvutil::Serializer<'a>>,
|
A: rkyv::Archive + for<'a> rkyv::Serialize<crate::rkyvutil::Serializer<'a>> + Send + 'static,
|
||||||
A::Archived: rkyv::Portable
|
A::Archived: rkyv::Portable
|
||||||
+ rkyv::Deserialize<A, crate::rkyvutil::Deserializer>
|
+ rkyv::Deserialize<A, crate::rkyvutil::Deserializer>
|
||||||
+ for<'a> rkyv::bytecheck::CheckBytes<crate::rkyvutil::Validator<'a>>,
|
+ for<'a> rkyv::bytecheck::CheckBytes<crate::rkyvutil::Validator<'a>>,
|
||||||
@@ -214,7 +214,7 @@ impl CachedClient {
|
|||||||
/// allowed to make subsequent requests, e.g. through the uncached client.
|
/// allowed to make subsequent requests, e.g. through the uncached client.
|
||||||
#[instrument(skip_all)]
|
#[instrument(skip_all)]
|
||||||
pub async fn get_serde<
|
pub async fn get_serde<
|
||||||
Payload: Serialize + DeserializeOwned + 'static,
|
Payload: Serialize + DeserializeOwned + Send + 'static,
|
||||||
CallBackError: std::error::Error + 'static,
|
CallBackError: std::error::Error + 'static,
|
||||||
Callback,
|
Callback,
|
||||||
CallbackReturn,
|
CallbackReturn,
|
||||||
@@ -342,7 +342,7 @@ impl CachedClient {
|
|||||||
|
|
||||||
/// Make a request without checking whether the cache is fresh.
|
/// Make a request without checking whether the cache is fresh.
|
||||||
pub async fn skip_cache<
|
pub async fn skip_cache<
|
||||||
Payload: Serialize + DeserializeOwned + 'static,
|
Payload: Serialize + DeserializeOwned + Send + 'static,
|
||||||
CallBackError: std::error::Error + 'static,
|
CallBackError: std::error::Error + 'static,
|
||||||
Callback,
|
Callback,
|
||||||
CallbackReturn,
|
CallbackReturn,
|
||||||
@@ -569,7 +569,7 @@ impl CachedClient {
|
|||||||
/// Perform a [`CachedClient::get_serde`] request with a default retry strategy.
|
/// Perform a [`CachedClient::get_serde`] request with a default retry strategy.
|
||||||
#[instrument(skip_all)]
|
#[instrument(skip_all)]
|
||||||
pub async fn get_serde_with_retry<
|
pub async fn get_serde_with_retry<
|
||||||
Payload: Serialize + DeserializeOwned + 'static,
|
Payload: Serialize + DeserializeOwned + Send + 'static,
|
||||||
CallBackError: std::error::Error + 'static,
|
CallBackError: std::error::Error + 'static,
|
||||||
Callback,
|
Callback,
|
||||||
CallbackReturn,
|
CallbackReturn,
|
||||||
@@ -648,7 +648,7 @@ impl CachedClient {
|
|||||||
///
|
///
|
||||||
/// See: <https://github.com/TrueLayer/reqwest-middleware/blob/8a494c165734e24c62823714843e1c9347027e8a/reqwest-retry/src/middleware.rs#L137>
|
/// See: <https://github.com/TrueLayer/reqwest-middleware/blob/8a494c165734e24c62823714843e1c9347027e8a/reqwest-retry/src/middleware.rs#L137>
|
||||||
pub async fn skip_cache_with_retry<
|
pub async fn skip_cache_with_retry<
|
||||||
Payload: Serialize + DeserializeOwned + 'static,
|
Payload: Serialize + DeserializeOwned + Send + 'static,
|
||||||
CallBackError: std::error::Error + 'static,
|
CallBackError: std::error::Error + 'static,
|
||||||
Callback,
|
Callback,
|
||||||
CallbackReturn,
|
CallbackReturn,
|
||||||
|
|||||||
Reference in New Issue
Block a user