Implement Vec<String>
diff --git a/tests/ffi/tests.cc b/tests/ffi/tests.cc
index b213930..b45e8ae 100644
--- a/tests/ffi/tests.cc
+++ b/tests/ffi/tests.cc
@@ -119,6 +119,10 @@
   throw std::runtime_error("unimplemented");
 }
 
+rust::Vec<rust::String> c_return_rust_vec_string() {
+  throw std::runtime_error("unimplemented");
+}
+
 size_t c_return_identity(size_t n) { return n; }
 
 size_t c_return_sum(size_t n1, size_t n2) { return n1 + n2; }
@@ -241,6 +245,11 @@
   }
 }
 
+void c_take_rust_vec_string(rust::Vec<rust::String> v) {
+  (void)v;
+  cxx_test_suite_set_correct();
+}
+
 void c_take_rust_vec_shared_forward_iterator(rust::Vec<Shared> v) {
   // Exercise requirements of ForwardIterator
   // https://en.cppreference.com/w/cpp/named_req/ForwardIterator
@@ -267,6 +276,11 @@
   }
 }
 
+void c_take_ref_rust_vec_string(const rust::Vec<rust::String> &v) {
+  (void)v;
+  cxx_test_suite_set_correct();
+}
+
 void c_take_ref_rust_vec_index(const rust::Vec<uint8_t> &v) {
   if (v[0] == 86 && v.at(0) == 86 && v.front() == 86 && v[1] == 75 &&
       v.at(1) == 75 && v[3] == 9 && v.at(3) == 9 && v.back() == 9) {
@@ -323,6 +337,10 @@
   throw std::runtime_error("unimplemented");
 }
 
+rust::Vec<rust::String> c_try_return_rust_vec_string() {
+  throw std::runtime_error("unimplemented");
+}
+
 const rust::Vec<uint8_t> &c_try_return_ref_rust_vec(const C &c) {
   (void)c;
   throw std::runtime_error("unimplemented");