1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
use crate::{
doc::input::{
CreateConfig, CreatesConfig, DeleteConfig, DeletesConfig, ReadConfig, ReadsConfig,
ReplaceConfig, ReplacesConfig, UpdateConfig, UpdatesConfig,
},
types::{ArangoResult, ArangoVecResult, DocMetaResult, DocMetaVecResult},
};
use async_trait::async_trait;
use serde::{de::DeserializeOwned, Serialize};
#[async_trait]
pub trait Document {
async fn create<T, U, V>(&self, config: CreateConfig<T>) -> DocMetaResult<U, V>
where
T: Serialize + Send + Sync,
U: Serialize + DeserializeOwned + Send + Sync,
V: Serialize + DeserializeOwned + Send + Sync;
async fn creates<T, U, V>(&self, config: CreatesConfig<T>) -> DocMetaVecResult<U, V>
where
T: Serialize + Send + Sync,
U: Serialize + DeserializeOwned + Send + Sync,
V: Serialize + DeserializeOwned + Send + Sync;
async fn read<T>(&self, config: ReadConfig) -> ArangoResult<T>
where
T: DeserializeOwned + Send + Sync;
async fn reads<T, U>(&self, config: ReadsConfig<T>) -> ArangoVecResult<U>
where
T: Serialize + Send + Sync,
U: Serialize + DeserializeOwned + Send + Sync;
async fn replace<T, U, V>(&self, config: ReplaceConfig<T>) -> DocMetaResult<U, V>
where
T: Serialize + Send + Sync,
U: Serialize + DeserializeOwned + Send + Sync,
V: Serialize + DeserializeOwned + Send + Sync;
async fn replaces<T, U, V>(&self, config: ReplacesConfig<T>) -> DocMetaVecResult<U, V>
where
T: Serialize + Send + Sync,
U: Serialize + DeserializeOwned + Send + Sync,
V: Serialize + DeserializeOwned + Send + Sync;
async fn update<T, U, V>(&self, config: UpdateConfig<T>) -> DocMetaResult<U, V>
where
T: Serialize + Send + Sync,
U: Serialize + DeserializeOwned + Send + Sync,
V: Serialize + DeserializeOwned + Send + Sync;
async fn updates<T, U, V>(&self, config: UpdatesConfig<T>) -> DocMetaVecResult<U, V>
where
T: Serialize + Send + Sync,
U: Serialize + DeserializeOwned + Send + Sync,
V: Serialize + DeserializeOwned + Send + Sync;
async fn delete<U, V>(&self, config: DeleteConfig) -> DocMetaResult<U, V>
where
U: Serialize + DeserializeOwned + Send + Sync,
V: Serialize + DeserializeOwned + Send + Sync;
async fn deletes<T, U, V>(&self, config: DeletesConfig<T>) -> DocMetaVecResult<U, V>
where
T: Serialize + Send + Sync,
U: Serialize + DeserializeOwned + Send + Sync,
V: Serialize + DeserializeOwned + Send + Sync;
}