Test returning Vec by value from C to Rust
diff --git a/tests/ffi/lib.rs b/tests/ffi/lib.rs
index 4a6ec81..0965e52 100644
--- a/tests/ffi/lib.rs
+++ b/tests/ffi/lib.rs
@@ -32,6 +32,7 @@
fn c_return_unique_ptr_vector_shared() -> UniquePtr<CxxVector<Shared>>;
fn c_return_unique_ptr_vector_opaque() -> UniquePtr<CxxVector<C>>;
fn c_return_ref_vector(c: &C) -> &CxxVector<u8>;
+ fn c_return_rust_vec() -> Vec<u8>;
fn c_take_primitive(n: usize);
fn c_take_shared(shared: Shared);
diff --git a/tests/ffi/tests.cc b/tests/ffi/tests.cc
index 8503ac7..7867bf0 100644
--- a/tests/ffi/tests.cc
+++ b/tests/ffi/tests.cc
@@ -93,6 +93,10 @@
return c.get_v();
}
+rust::Vec<uint8_t> c_return_rust_vec() {
+ throw std::runtime_error("unimplemented");
+}
+
void c_take_primitive(size_t n) {
if (n == 2020) {
cxx_test_suite_set_correct();
diff --git a/tests/ffi/tests.h b/tests/ffi/tests.h
index 0e9081a..9a067d2 100644
--- a/tests/ffi/tests.h
+++ b/tests/ffi/tests.h
@@ -36,6 +36,7 @@
std::unique_ptr<std::vector<Shared>> c_return_unique_ptr_vector_shared();
std::unique_ptr<std::vector<C>> c_return_unique_ptr_vector_opaque();
const std::vector<uint8_t> &c_return_ref_vector(const C &c);
+rust::Vec<uint8_t> c_return_rust_vec();
void c_take_primitive(size_t n);
void c_take_shared(Shared shared);