erebus_sdk_rust/
lib.rs

1mod pool;
2mod global;
3mod client;
4mod types;
5
6pub use types::{
7    ErebusRequestType,
8    ObjectCacheRequest,
9    UrlCacheRequest,
10    ErebusPackedRequest,
11    ErebusResponse,
12    ObjectCacheResponse,
13    UrlCacheResponse,
14};
15
16use futures_util::{SinkExt, StreamExt};
17use serde::{Deserialize, Serialize};
18use std::future::Future;
19use serde::de::DeserializeOwned;
20
21pub async fn object_cache_get<T: Serialize + DeserializeOwned + ?Sized>(
22    name: String,
23    tags: Vec<String>,
24) -> Result<Option<T>, Box<dyn std::error::Error>> {
25    let x = global::EREBUS_CACHE_POOL.get_instance();
26    let mut y = x.lock().await;
27
28    y.object_cache::<T>(
29        name,
30        tags,
31        None,
32    ).await
33}
34
35pub async fn object_cache_put<T: Serialize + DeserializeOwned + ?Sized>(
36    name: String,
37    tags: Vec<String>,
38    body: T,
39) -> Result<Option<T>, Box<dyn std::error::Error>> {
40    let x = global::EREBUS_CACHE_POOL.get_instance();
41    let mut y = x.lock().await;
42
43    y.object_cache::<T>(
44        name,
45        tags,
46        Some(body),
47    ).await
48}
49
50pub async fn url_cache(
51    request: UrlCacheRequest,
52) -> Result<UrlCacheResponse, Box<dyn std::error::Error>> {
53    let x = global::EREBUS_CACHE_POOL.get_instance();
54    let mut y = x.lock().await;
55
56    y.url_cache(request).await
57}