diff --git a/api/sixtyfps-cpp/include/sixtyfps_interpreter.h b/api/sixtyfps-cpp/include/sixtyfps_interpreter.h index 8153d75df..87bdf43f8 100644 --- a/api/sixtyfps-cpp/include/sixtyfps_interpreter.h +++ b/api/sixtyfps-cpp/include/sixtyfps_interpreter.h @@ -376,14 +376,14 @@ public: { using namespace cbindgen_private; return sixtyfps_interpreter_component_instance_set_property( - &inner, Slice::from_string(name), &value.inner); + &inner, sixtyfps::private_api::string_to_slice(name), &value.inner); } std::optional get_property(std::string_view name) const { using namespace cbindgen_private; ValueOpaque out; if (sixtyfps_interpreter_component_instance_get_property( - &inner, Slice::from_string(name), &out)) { + &inner, sixtyfps::private_api::string_to_slice(name), &out)) { return Value(out); } else { return {}; @@ -396,7 +396,7 @@ public: Slice args_view { reinterpret_cast(args.ptr), args.len }; ValueOpaque out; if (sixtyfps_interpreter_component_instance_invoke_callback( - &inner, Slice::from_string(name), args_view, &out)) { + &inner, sixtyfps::private_api::string_to_slice(name), args_view, &out)) { return Value(out); } else { return {}; @@ -413,8 +413,8 @@ public: new (ret) Value(std::move(r)); }; return cbindgen_private::sixtyfps_interpreter_component_instance_set_callback( - &inner, Slice::from_string(name), actual_cb, new F(std::move(callback)), - [](void *data) { delete reinterpret_cast(data); }); + &inner, sixtyfps::private_api::string_to_slice(name), actual_cb, + new F(std::move(callback)), [](void *data) { delete reinterpret_cast(data); }); } }; diff --git a/xtask/src/cbindgen.rs b/xtask/src/cbindgen.rs index 9efba43f8..96922af64 100644 --- a/xtask/src/cbindgen.rs +++ b/xtask/src/cbindgen.rs @@ -103,15 +103,15 @@ fn gen_corelib(root_dir: &Path, include_dir: &Path) -> anyhow::Result<()> { let mut string_config = config.clone(); string_config.export.exclude = vec!["SharedString".into()]; - string_config.export.body.insert( - "Slice".to_owned(), - " static Slice from_string(std::string_view str) { - return { + string_config.trailer = Some( + "namespace sixtyfps::private_api { + cbindgen_private::Slice string_to_slice(std::string_view str) { + return cbindgen_private::Slice { const_cast(reinterpret_cast(str.data())), str.size() }; - }" - .to_owned(), + } + }".to_owned(), ); cbindgen::Builder::new()