Constellation, Spacedust, Slingshot, UFOs: atproto crates and services for microcosm

add name to ufos storage interface

+2
ufos/src/server.rs
···
#[derive(Debug, Serialize, JsonSchema)]
struct MetaInfo {
+
storage_name: String,
storage: serde_json::Value,
consumer: ConsumerInfo,
}
···
.map_err(failed_to_get("consumer info"))?;
ok_cors(MetaInfo {
+
storage_name: storage.name(),
storage: storage_info,
consumer,
})
+2
ufos/src/storage.rs
···
#[async_trait]
pub trait StoreReader: Send + Sync {
+
fn name(&self) -> String;
+
async fn get_storage_stats(&self) -> StorageResult<serde_json::Value>;
async fn get_consumer_info(&self) -> StorageResult<ConsumerInfo>;
+3
ufos/src/storage_fjall.rs
···
#[async_trait]
impl StoreReader for FjallReader {
+
fn name(&self) -> String {
+
"fjall storage v2".into()
+
}
async fn get_storage_stats(&self) -> StorageResult<serde_json::Value> {
let s = self.clone();
tokio::task::spawn_blocking(move || FjallReader::get_storage_stats(&s)).await?
+3
ufos/src/storage_mem.rs
···
#[async_trait]
impl StoreReader for MemReader {
+
fn name(&self) -> String {
+
"in-memory store".into()
+
}
async fn get_storage_stats(&self) -> StorageResult<serde_json::Value> {
let s = self.clone();
tokio::task::spawn_blocking(move || MemReader::get_storage_stats(&s)).await?