Add explicit conversion for wgpu::StringView -> absl::string_view
- Adding this templated solution should be a more fail-safe fix
w.r.t google3 code where std::string_view is not always
available, and instead absl::string_view is used. The
templated solution also allows us to avoid including absl
in the header.
Change-Id: I8ada93abfb688b4762ffd5cf1a3dc5676f16b6c6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/211234
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: James Price <jrprice@google.com>
Commit-Queue: Loko Kung <lokokung@google.com>
Auto-Submit: Loko Kung <lokokung@google.com>
diff --git a/generator/templates/dawn/cpp_macros.tmpl b/generator/templates/dawn/cpp_macros.tmpl
index 2b0fb20..e92a386 100644
--- a/generator/templates/dawn/cpp_macros.tmpl
+++ b/generator/templates/dawn/cpp_macros.tmpl
@@ -77,4 +77,16 @@
}
return {this->data, this->length};
}
+
+ template <typename View,
+ typename = std::enable_if_t<std::is_constructible_v<View, const char*, size_t>>>
+ explicit operator View() const {
+ if (this->length == wgpu::kStrlen) {
+ if (IsUndefined()) {
+ return {};
+ }
+ return {this->data};
+ }
+ return {this->data, this->length};
+ }
{% endmacro %}