indy_sys/
wallet.rs

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