From c794cdc6803ba01f00aa6790dd2d7d45b7c6f5d3 Mon Sep 17 00:00:00 2001 From: NikVolf Date: Tue, 20 Aug 2019 18:09:09 +0300 Subject: [PATCH] fix signature and generate h --- bindings.h | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib.rs | 2 +- 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 bindings.h diff --git a/bindings.h b/bindings.h new file mode 100644 index 0000000..818dfc8 --- /dev/null +++ b/bindings.h @@ -0,0 +1,59 @@ +#include +#include +#include +#include + +template +struct Option; + +struct NodeLink { + enum class Tag { + Stored, + Generated, + }; + + struct Stored_Body { + uint32_t _0; + }; + + struct Generated_Body { + uint32_t _0; + }; + + Tag tag; + union { + Stored_Body stored; + Generated_Body generated; + }; +}; + +struct NodeData { + uint8_t subtree_commitment[32]; + uint32_t start_time; + uint32_t end_time; + uint32_t start_target; + uint32_t end_target; + uint8_t start_sapling_root[32]; + uint8_t end_sapling_root[32]; + uint64_t subtree_total_work; + uint32_t start_height; + uint32_t end_height; + uint64_t shielded_tx; +}; + +struct MMRNode { + Option left; + Option right; + NodeData data; +}; + +extern "C" { + +void append(const MMRNode *stored, + uint32_t stored_count, + const MMRNode *generated, + uint32_t generated_count, + uint32_t *append_count, + MMRNode *append_buffer); + +} // extern "C" diff --git a/src/lib.rs b/src/lib.rs index abc0d45..726e473 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -58,7 +58,7 @@ pub extern fn append( generated_count: u32, append_count: *mut u32, append_buffer: *mut MMRNode, -) -> MMRNode { +) { // TODO: construct tree and write to (append_count, append_buffer) // TODO: also return generated??