musdk_common/outgoing_message/
db.rs1use std::borrow::Cow;
2
3use borsh::{BorshDeserialize, BorshSerialize};
4
5#[derive(Debug, BorshSerialize, BorshDeserialize)]
6pub struct Put<'a> {
7 pub table: Cow<'a, [u8]>,
8 pub key: Cow<'a, [u8]>,
9 pub value: Cow<'a, [u8]>,
10 pub is_atomic: bool,
11}
12
13#[derive(Debug, BorshSerialize, BorshDeserialize)]
14pub struct Get<'a> {
15 pub table: Cow<'a, [u8]>,
16 pub key: Cow<'a, [u8]>,
17}
18
19#[derive(Debug, BorshSerialize, BorshDeserialize)]
20pub struct Delete<'a> {
21 pub table: Cow<'a, [u8]>,
22 pub key: Cow<'a, [u8]>,
23 pub is_atomic: bool,
24}
25
26#[derive(Debug, BorshSerialize, BorshDeserialize)]
27pub struct DeleteByPrefix<'a> {
28 pub table: Cow<'a, [u8]>,
29 pub key_prefix: Cow<'a, [u8]>,
30}
31
32#[derive(Debug, BorshSerialize, BorshDeserialize)]
33pub struct Scan<'a> {
34 pub table: Cow<'a, [u8]>,
35 pub key_prefix: Cow<'a, [u8]>,
36 pub limit: u32,
37}
38
39#[derive(Debug, BorshSerialize, BorshDeserialize)]
40pub struct ScanKeys<'a> {
41 pub table: Cow<'a, [u8]>,
42 pub key_prefix: Cow<'a, [u8]>,
43 pub limit: u32,
44}
45
46#[derive(Debug, BorshSerialize, BorshDeserialize)]
47pub struct CompareAndSwap<'a> {
48 pub table: Cow<'a, [u8]>,
49 pub key: Cow<'a, [u8]>,
50 pub new_value: Cow<'a, [u8]>,
51 pub previous_value: Option<Cow<'a, [u8]>>,
52}
53
54type TableName<'a> = Cow<'a, [u8]>;
55type Key<'a> = Cow<'a, [u8]>;
56type Value<'a> = Cow<'a, [u8]>;
57
58#[derive(Debug, BorshSerialize, BorshDeserialize)]
59pub struct BatchPut<'a> {
60 pub table_key_value_triples: Vec<(TableName<'a>, Key<'a>, Value<'a>)>,
61 pub is_atomic: bool,
62}
63
64#[derive(Debug, BorshSerialize, BorshDeserialize)]
65pub struct BatchGet<'a> {
66 pub table_key_tuples: Vec<(TableName<'a>, Key<'a>)>,
67}
68
69#[derive(Debug, BorshSerialize, BorshDeserialize)]
70pub struct BatchDelete<'a> {
71 pub table_key_tuples: Vec<(TableName<'a>, Key<'a>)>,
72}
73
74#[derive(Debug, BorshSerialize, BorshDeserialize)]
75pub struct BatchScan<'a> {
76 pub table_key_prefix_tuples: Vec<(TableName<'a>, Key<'a>)>,
77 pub each_limit: u32,
78}
79
80#[derive(Debug, BorshSerialize, BorshDeserialize)]
81pub struct BatchScanKeys<'a> {
82 pub table_key_prefix_tuples: Vec<(TableName<'a>, Key<'a>)>,
83 pub each_limit: u32,
84}
85
86#[derive(Debug, BorshSerialize, BorshDeserialize)]
87pub struct TableList<'a> {
88 pub table_prefix: Cow<'a, [u8]>,
89}