1use crate::{data::{EntityId, FieldType, Timestamp, Value}};
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
5pub enum PushCondition {
6 Always,
7 Changes
8}
9
10#[derive(Debug, Clone, Serialize, Deserialize)]
11pub enum AdjustBehavior {
12 Set,
13 Add,
14 Subtract,
15}
16
17#[derive(Debug, Clone)]
18pub enum Request {
19 Read {
20 entity_id: EntityId,
21 field_type: FieldType,
22 value: Option<Value>,
23 write_time: Option<Timestamp>,
24 writer_id: Option<EntityId>,
25 },
26 Write {
27 entity_id: EntityId,
28 field_type: FieldType,
29 value: Option<Value>,
30 push_condition: PushCondition,
31 adjust_behavior: AdjustBehavior,
32 write_time: Option<Timestamp>,
33 writer_id: Option<EntityId>,
34 }
35}