use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize)]
pub struct StrongRef {
pub uri: String,
pub cid: String,
}
#[derive(Debug, Deserialize)]
pub struct Record<T> {
pub uri: String,
pub cid: String,
pub value: T,
}
#[derive(Debug, Deserialize)]
pub struct ListRecordsOutput<T> {
pub cursor: Option<String>,
pub records: Vec<Record<T>>,
}
#[derive(Serialize)]
pub struct CreateRecord<'a, T> {
pub repo: &'a str,
pub collection: &'a str,
pub record: T,
}
#[derive(Debug, Deserialize)]
pub struct CreateRecordOutput {
pub cid: String,
pub uri: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct CreateUploadBlob {
pub blob: Vec<u8>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Link {
#[serde(rename(deserialize = "$link", serialize = "$link"))]
pub link: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Blob {
#[serde(rename(deserialize = "$type", serialize = "$type"))]
pub rust_type: String,
pub r#ref: Link,
#[serde(rename(deserialize = "mimeType", serialize = "mimeType"))]
pub mime_type: String,
pub size: usize,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct BlobOutput {
pub blob: Blob,
}