use serde::{Deserialize, Serialize};
use crate::*;
#[derive(Debug, Clone, Serialize, Deserialize, schemars::JsonSchema)]
pub struct SelectStorageByKey {
pub key: StorageKey,
}
#[derive(Debug, Clone)]
pub struct SetStorageRequest {
pub key: StorageKey,
pub description: String,
pub data: Vec<u8>,
}
#[derive(Debug, Clone, Serialize, Deserialize, schemars::JsonSchema)]
pub struct GetStorageRequest {
pub key: StorageKey,
}
#[derive(Debug, Clone, Serialize, Deserialize, schemars::JsonSchema)]
pub struct GetStorageContentRequest {
pub key: StorageKey,
}
#[derive(Debug, Clone, Serialize, Deserialize, schemars::JsonSchema)]
pub struct RemoveStorageRequest {
pub key: StorageKey,
}
#[derive(Debug, Clone, Serialize, Deserialize, schemars::JsonSchema)]
pub struct ListStorageRequest;
#[derive(Debug, Clone, Serialize, Deserialize, schemars::JsonSchema)]
#[serde(rename_all = "kebab-case", tag = "type", content = "data")]
pub enum StorageEvents {
BlobStored(BlobContent),
StorageSet(StorageEntry),
StorageRemoved(SelectStorageByKey),
}
#[derive(Debug, Clone, Serialize, Deserialize, schemars::JsonSchema)]
#[serde(rename_all = "kebab-case", tag = "type", content = "data")]
pub enum StorageRequests {
RemoveStorage(RemoveStorageRequest),
GetStorage(GetStorageRequest),
GetStorageContent(GetStorageContentRequest),
ListStorage(ListStorageRequest),
}
#[derive(Debug, Clone, Serialize, Deserialize, schemars::JsonSchema)]
#[serde(rename_all = "kebab-case", tag = "type", content = "data")]
pub enum StorageResponses {
StorageSet(StorageEntry),
StorageFound(StorageEntry),
StorageListed(Vec<StorageEntry>),
StorageRemoved,
}