When the only reference to the transaction bytes is via
Transaction::data, my understanding of the C const rules is that
it would then be invalid to write to it. While its unlikely this
would ever pose an issue, its not hard to simply make it *mut, so
we do that here.
/// set. Similarly, while it may change in the future, all `Transaction`s you pass to Rust may have
/// `data_is_owned` either set or unset at your discretion.
pub struct Transaction {
- pub data: *const u8,
+ /// This is non-const for your convenience, an object passed to Rust is never written to.
+ pub data: *mut u8,
pub datalen: usize,
pub data_is_owned: bool,
}