aether_protocol/
request.rs1use crate::types::{BatchRequest, Filter, QueryOptions, Record};
7use serde::{Deserialize, Serialize};
8
9#[derive(Serialize, Deserialize, Debug, PartialEq)]
11pub enum Request {
12 CreateDatabase { db_name: String },
14 DropDatabase { db_name: String },
15 ListDatabases,
16
17 ListCollections,
19 CreateCollection { db_name: String, collection_name: String },
20 DropCollection { db_name: String, collection_name: String },
21 GetStats,
22 Flush,
23
24 CreateIndex { db_name: String, collection: String, field_name: String },
26 DropIndex { db_name: String, collection: String, field_name: String },
27 ListIndexes { db_name: String, collection: String },
28
29 CreateRecord { db_name: String, collection: String, record_id: String, data: Record },
31 UpdateRecord { db_name: String, collection: String, record_id: String, data: Record },
32 UpsertRecord { db_name: String, collection: String, record_id: String, data: Record },
33 GetRecord { db_name: String, collection: String, record_id: String },
34 DeleteRecord { db_name: String, collection: String, record_id: String, cascade: bool },
35 GetLastInsertId,
36
37 FindRecords {
39 db_name: String,
40 collection: String,
41 filter: Filter,
42 options: Option<QueryOptions>,
43 },
44 CountRecords {
45 db_name: String,
46 collection: String,
47 filter: Filter,
48 },
49 GetRecordWithRelated {
50 db_name: String,
51 primary_collection: String,
52 primary_record_id: String,
53 relation_key_field: String,
54 related_collection: String,
55 },
56 ExecuteBatchGet(BatchRequest),
57}