Piotr Sarna
|
d5eec5d528
|
cursor: add MVCCScanCursorPosition
|
2023-05-11 14:11:10 +02:00 |
|
Piotr Sarna
|
e8bdfc8e7a
|
cursor, read: update pointers to *mut u8
|
2023-05-11 13:35:19 +02:00 |
|
Piotr Sarna
|
54ee330912
|
cursor: add closing cursor
... which also terminates the read transaction open for scanning.
|
2023-05-11 12:13:27 +02:00 |
|
Piotr Sarna
|
ef097362ff
|
mvcc, bindings: expose a scan cursor
|
2023-05-10 15:48:46 +02:00 |
|
Piotr Sarna
|
d047a24a32
|
bindings: expose reading from the database
The results are returned as a CString for now.
|
2023-05-10 12:09:06 +02:00 |
|
Pekka Enberg
|
cf31de5d41
|
Fix MVCCDatabaseInsert() type signature
Values are opaque blobs so use "const void *" for C callers.
|
2023-05-09 16:14:28 +03:00 |
|
Pekka Enberg
|
3d0c8a415e
|
Add stdint.h include to mvcc.h
|
2023-05-09 13:49:31 +03:00 |
|
Piotr Sarna
|
d4da54b10b
|
mvcc: build static library for C bindings
That's how it's currently consumed by libSQL.
|
2023-05-09 10:28:26 +02:00 |
|
Pekka Enberg
|
b9575c4375
|
Rename database directory to mvcc-rs
|
2023-05-09 10:56:46 +03:00 |
|
Pekka Enberg
|
41bed41544
|
Improve logging
|
2023-05-09 10:51:14 +03:00 |
|
Pekka Enberg
|
5ce2bc41f9
|
cargo fmt
|
2023-05-09 10:47:43 +03:00 |
|
Pekka Enberg
|
b2f46e156b
|
Improve C binding error reporting
|
2023-05-09 10:47:40 +03:00 |
|
Pekka Enberg
|
3ecb0fb2a9
|
Mark MVCCDatabaseOpen() as unsafe
|
2023-05-09 10:44:06 +03:00 |
|
Pekka Enberg
|
db1e313aca
|
Silence clippy
|
2023-05-09 10:43:42 +03:00 |
|
Pekka Enberg
|
c94561a646
|
Add mvcc.h to the tree
|
2023-05-09 10:41:33 +03:00 |
|
Pekka Enberg
|
779ad3066a
|
Add error codes to C bindings
|
2023-05-09 10:41:13 +03:00 |
|
Pekka Enberg
|
34a4f1a269
|
Improve generated C bindings
Before:
```c
typedef LocalClock Clock;
typedef JsonOnDisk Storage;
typedef DatabaseInner<Clock, Storage> Inner;
typedef Database<Clock, Storage, Mutex<Inner>> Db;
typedef struct {
Db db;
Runtime runtime;
} DbContext;
extern "C" {
DbContext *mvccrs_new_database(const char *path);
void mvccrs_free_database(Db *db);
int32_t mvccrs_insert(DbContext *db, uint64_t id, const uint8_t *value_ptr, uintptr_t value_len);
} // extern "C"
```
After:
```c
typedef struct DbContext DbContext;
typedef const DbContext *MVCCDatabaseRef;
extern "C" {
MVCCDatabaseRef MVCCDatabaseOpen(const char *path);
void MVCCDatabaseClose(MVCCDatabaseRef db);
int32_t MVCCDatabaseInsert(MVCCDatabaseRef db, uint64_t id, const uint8_t *value_ptr, uintptr_t value_len);
} // extern "C"
```
|
2023-05-09 10:34:11 +03:00 |
|
Pekka Enberg
|
124446f17c
|
Generate C header file on cargo build
|
2023-05-09 10:34:11 +03:00 |
|
Pekka Enberg
|
d5b96d5edf
|
Move C bindings to separate crate
|
2023-05-09 10:34:11 +03:00 |
|