1use gonzalo_core::{Conflict, Record, Revision};
6use serde::{Deserialize, Serialize};
7
8#[derive(Debug, Clone, Serialize, Deserialize)]
10pub struct PutBody {
11 pub record: Record,
12 pub expected: Option<Revision>,
13}
14
15#[derive(Debug, Clone, Serialize, Deserialize)]
17#[serde(tag = "outcome", rename_all = "snake_case")]
18pub enum PutOutcome {
19 Committed { revision: Revision },
20 Conflict { conflict: Box<Conflict> },
21}
22
23#[derive(Debug, Clone, Default, Serialize, Deserialize)]
26pub struct DeleteBody {
27 pub expected: Option<Revision>,
28}
29
30#[derive(Debug, Clone, Serialize, Deserialize)]
32#[serde(tag = "outcome", rename_all = "snake_case")]
33pub enum DeleteOutcome {
34 Deleted,
35 Conflict { conflict: Box<Conflict> },
36}