tandem_server/shared_resources/
types.rs1use serde::{Deserialize, Serialize};
2use serde_json::Value;
3
4#[derive(Debug, Clone, Serialize, Deserialize)]
5pub struct SharedResourceRecord {
6 pub key: String,
7 pub value: Value,
8 pub rev: u64,
9 pub updated_at_ms: u64,
10 pub updated_by: String,
11 #[serde(skip_serializing_if = "Option::is_none")]
12 pub ttl_ms: Option<u64>,
13}
14
15#[derive(Debug, Clone, Serialize)]
16pub struct ResourceConflict {
17 pub key: String,
18 pub expected_rev: Option<u64>,
19 pub current_rev: Option<u64>,
20}
21
22#[derive(Debug, Clone, Serialize)]
23#[serde(tag = "type", rename_all = "snake_case")]
24pub enum ResourceStoreError {
25 InvalidKey { key: String },
26 RevisionConflict(ResourceConflict),
27 PersistFailed { message: String },
28}