From 675e489aff8b02242b8ff1df371164ad5aacbd23 Mon Sep 17 00:00:00 2001 From: Jack Grigg Date: Tue, 16 Nov 2021 18:29:50 +0000 Subject: [PATCH] rust: Move `incremental_sinsemilla_tree_ffi` into crate root Having this be a submodule of `orchard_ffi` while following Rust 2018 module structure made it impossible to use the `include!` macro on `orchard_ffi.rs`, which is exactly what the `zcash_script` crate does. See this comment for details: https://github.com/rust-lang/rust/issues/50132#issuecomment-969450868 To resolve this, we restructure the FFI library crate to only have FFI methods in "leaf" module files. --- .../src/{orchard_ffi => }/incremental_sinsemilla_tree_ffi.rs | 4 ++-- src/rust/src/orchard_ffi.rs | 2 -- src/rust/src/rustzcash.rs | 1 + 3 files changed, 3 insertions(+), 4 deletions(-) rename src/rust/src/{orchard_ffi => }/incremental_sinsemilla_tree_ffi.rs (98%) diff --git a/src/rust/src/orchard_ffi/incremental_sinsemilla_tree_ffi.rs b/src/rust/src/incremental_sinsemilla_tree_ffi.rs similarity index 98% rename from src/rust/src/orchard_ffi/incremental_sinsemilla_tree_ffi.rs rename to src/rust/src/incremental_sinsemilla_tree_ffi.rs index 370ae521c..37fc07c78 100644 --- a/src/rust/src/orchard_ffi/incremental_sinsemilla_tree_ffi.rs +++ b/src/rust/src/incremental_sinsemilla_tree_ffi.rs @@ -6,13 +6,13 @@ use std::mem::size_of_val; use std::ptr; use orchard::{bundle::Authorized, tree::MerkleHashOrchard}; - +use tracing::error; use zcash_primitives::{ merkle_tree::incremental::{read_frontier_v1, read_tree, write_frontier_v1, write_tree}, transaction::components::Amount, }; -use crate::orchard_ffi::{error, CppStreamReader, CppStreamWriter, ReadCb, StreamObj, WriteCb}; +use crate::streams_ffi::{CppStreamReader, CppStreamWriter, ReadCb, StreamObj, WriteCb}; pub const MERKLE_DEPTH: u8 = 32; pub const MAX_CHECKPOINTS: usize = 100; diff --git a/src/rust/src/orchard_ffi.rs b/src/rust/src/orchard_ffi.rs index 7bfea4080..dbc6649c6 100644 --- a/src/rust/src/orchard_ffi.rs +++ b/src/rust/src/orchard_ffi.rs @@ -19,8 +19,6 @@ use zcash_primitives::transaction::{ use crate::streams_ffi::{CppStreamReader, CppStreamWriter, ReadCb, StreamObj, WriteCb}; -mod incremental_sinsemilla_tree_ffi; - #[no_mangle] pub extern "C" fn orchard_bundle_clone( bundle: *const Bundle, diff --git a/src/rust/src/rustzcash.rs b/src/rust/src/rustzcash.rs index c4b1e6125..e4879d0c4 100644 --- a/src/rust/src/rustzcash.rs +++ b/src/rust/src/rustzcash.rs @@ -70,6 +70,7 @@ mod tracing_ffi; mod address_ffi; mod history_ffi; +mod incremental_sinsemilla_tree_ffi; mod orchard_ffi; mod transaction_ffi; mod zip339_ffi;