aboutsummaryrefslogtreecommitdiff
path: root/src/rt
diff options
context:
space:
mode:
Diffstat (limited to 'src/rt')
-rw-r--r--src/rt/rust_builtin.cpp7
-rw-r--r--src/rt/rustrt.def.in1
2 files changed, 8 insertions, 0 deletions
diff --git a/src/rt/rust_builtin.cpp b/src/rt/rust_builtin.cpp
index 1d8f8ba8..98333774 100644
--- a/src/rt/rust_builtin.cpp
+++ b/src/rt/rust_builtin.cpp
@@ -170,6 +170,13 @@ vec_alloc_with_data(rust_task *task,
return new (mem) rust_vec(dom, alloc, fill * elt_size, (uint8_t*)d);
}
+extern "C" CDECL rust_vec*
+vec_from_vbuf(rust_task *task, type_desc *ty, void *vbuf, size_t n_elts)
+{
+ return vec_alloc_with_data(task, n_elts, n_elts * ty->size, ty->size,
+ vbuf);
+}
+
extern "C" CDECL rust_str*
str_alloc(rust_task *task, size_t n_bytes)
{
diff --git a/src/rt/rustrt.def.in b/src/rt/rustrt.def.in
index 1f081605..d917aa93 100644
--- a/src/rt/rustrt.def.in
+++ b/src/rt/rustrt.def.in
@@ -62,6 +62,7 @@ upcall_yield
vec_alloc
vec_alloc_mut
vec_buf
+vec_from_vbuf
vec_len
vec_len_set
vec_print_debug_info