rust_libindy_wrapper/native/
wallet.rs

1use super::*;
2
3use native::{BString, CString, Error, Handle};
4
5extern {
6    #[no_mangle]
7    pub fn indy_register_wallet_storage(command_handle: Handle,
8                                        type_: CString,
9                                        create: Option<WalletCreate>,
10                                        open: Option<WalletOpen>,
11                                        close: Option<WalletClose>,
12                                        delete: Option<WalletDelete>,
13                                        add_record: Option<WalletAddRecord>,
14                                        update_record_value: Option<WalletUpdateRecordValue>,
15                                        update_record_tags: Option<WalletUpdateRecordTags>,
16                                        add_record_tags: Option<WalletAddRecordTags>,
17                                        delete_record_tags: Option<WalletDeleteRecordTags>,
18                                        delete_record: Option<WalletDeleteRecord>,
19                                        get_record: Option<WalletGetRecord>,
20                                        get_record_id: Option<WalletGetRecordId>,
21                                        get_record_type: Option<WalletGetRecordType>,
22                                        get_record_value: Option<WalletGetRecordValue>,
23                                        get_record_tags: Option<WalletGetRecordTags>,
24                                        free_record: Option<WalletFreeRecord>,
25                                        get_storage_metadata: Option<WalletGetStorageMetadata>,
26                                        set_storage_metadata: Option<WalletSetStorageMetadata>,
27                                        free_storage_metadata: Option<WalletFreeStorageMetadata>,
28                                        search_records: Option<WalletSearchRecords>,
29                                        search_all_records: Option<WalletSearchAllRecords>,
30                                        get_search_total_count: Option<WalletGetSearchTotalCount>,
31                                        fetch_search_next_record: Option<WalletFetchSearchNextRecord>,
32                                        free_search: Option<WalletFreeSearch>,
33                                        cb: Option<ResponseEmptyCB>) -> Error;
34    #[no_mangle]
35    pub fn indy_create_wallet(command_handle: Handle,
36                              config: CString,
37                              credentials: CString,
38                              cb: Option<ResponseEmptyCB>) -> Error;
39    #[no_mangle]
40    pub fn indy_open_wallet(command_handle: Handle,
41                            config: CString,
42                            credentials: CString,
43                            cb: Option<ResponseI32CB>) -> Error;
44    #[no_mangle]
45    pub fn indy_export_wallet(command_handle: Handle,
46                              wallet_handle: Handle,
47                              export_config: CString,
48                              cb: Option<ResponseEmptyCB>) -> Error;
49    #[no_mangle]
50    pub fn indy_import_wallet(command_handle: Handle,
51                              config: CString,
52                              credentials: CString,
53                              import_config: CString,
54                              cb: Option<ResponseEmptyCB>) -> Error;
55    #[no_mangle]
56    pub fn indy_close_wallet(command_handle: Handle,
57                             wallet_handle: Handle,
58                             cb: Option<ResponseEmptyCB>) -> Error;
59    #[no_mangle]
60    pub fn indy_delete_wallet(command_handle: Handle,
61                              config: CString,
62                              credentials: CString,
63                              cb: Option<ResponseEmptyCB>) -> Error;
64}
65
66pub type WalletCreate = extern fn(name: CString,
67                                  config: CString,
68                                  credentials_json: CString,
69                                  metadata: CString) -> Error;
70pub type WalletOpen = extern fn(name: CString,
71                                config: CString,
72                                credentials_json: CString,
73                                storage_handle_p: *mut Handle) -> Error;
74pub type WalletClose = extern fn(storage_handle: Handle) -> Error;
75pub type WalletDelete = extern fn(name: CString,
76                                  config: CString,
77                                  credentials_json: CString) -> Error;
78pub type WalletAddRecord = extern fn(storage_handle: Handle,
79                                     type_: CString,
80                                     id: CString,
81                                     value: BString,
82                                     value_len: usize,
83                                     tags_json: CString) -> Error;
84pub type WalletUpdateRecordValue = extern fn(storage_handle: Handle,
85                                             type_: CString,
86                                             id: CString,
87                                             value: BString,
88                                             value_len: usize, ) -> Error;
89pub type WalletUpdateRecordTags = extern fn(storage_handle: Handle,
90                                            type_: CString,
91                                            id: CString,
92                                            tags_json: CString) -> Error;
93pub type WalletAddRecordTags = extern fn(storage_handle: Handle,
94                                         type_: CString,
95                                         id: CString,
96                                         tags_json: CString) -> Error;
97pub type WalletDeleteRecordTags = extern fn(storage_handle: Handle,
98                                            type_: CString,
99                                            id: CString,
100                                            tag_names_json: CString) -> Error;
101pub type WalletDeleteRecord = extern fn(storage_handle: Handle,
102                                        type_: CString,
103                                        id: CString) -> Error;
104pub type WalletGetRecord = extern fn(storage_handle: Handle,
105                                     type_: CString,
106                                     id: CString,
107                                     options_json: CString,
108                                     record_handle_p: *mut Handle) -> Error;
109pub type WalletGetRecordId = extern fn(storage_handle: Handle,
110                                       record_handle: Handle,
111                                       record_id_p: *mut CString) -> Error;
112pub type WalletGetRecordType = extern fn(storage_handle: Handle,
113                                         record_handle: Handle,
114                                         record_type_p: *mut CString) -> Error;
115pub type WalletGetRecordValue = extern fn(storage_handle: Handle,
116                                          record_handle: Handle,
117                                          record_value_p: *mut BString,
118                                          record_value_len_p: *mut usize) -> Error;
119pub type WalletGetRecordTags = extern fn(storage_handle: Handle,
120                                         record_handle: Handle,
121                                         record_tags_p: *mut CString) -> Error;
122pub type WalletFreeRecord = extern fn(storage_handle: Handle,
123                                      record_handle: Handle) -> Error;
124pub type WalletGetStorageMetadata = extern fn(storage_handle: Handle,
125                                              metadata_p: *mut CString,
126                                              metadata_handle: *mut Handle) -> Error;
127pub type WalletSetStorageMetadata = extern fn(storage_handle: Handle,
128                                              metadata_p: CString) -> Error;
129pub type WalletFreeStorageMetadata = extern fn(storage_handle: Handle,
130                                               metadata_handle: Handle) -> Error;
131pub type WalletSearchRecords = extern fn(storage_handle: Handle,
132                                         type_: CString,
133                                         query_json: CString,
134                                         options_json: CString,
135                                         search_handle_p: *mut Handle) -> Error;
136pub type WalletSearchAllRecords = extern fn(storage_handle: Handle,
137                                            search_handle_p: *mut Handle) -> Error;
138pub type WalletGetSearchTotalCount = extern fn(storage_handle: Handle,
139                                               search_handle: Handle,
140                                               total_count_p: *mut usize) -> Error;
141pub type WalletFetchSearchNextRecord = extern fn(storage_handle: Handle,
142                                                 search_handle: Handle,
143                                                 record_handle_p: *mut Handle) -> Error;
144pub type WalletFreeSearch = extern fn(storage_handle: Handle,
145                                      search_handle: Handle) -> Error;