[dawn] Replace `absl::string_view` with `std::string_view`
Bug: 343500108
Change-Id: Ib183ce5933bb5b2581115236ac37cb533489dcc6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/239695
Reviewed-by: Loko Kung <lokokung@google.com>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
diff --git a/generator/templates/dawn/native/api_structs.h b/generator/templates/dawn/native/api_structs.h
index 35d568f..fad36fc 100644
--- a/generator/templates/dawn/native/api_structs.h
+++ b/generator/templates/dawn/native/api_structs.h
@@ -32,7 +32,6 @@
#ifndef {{DIR}}_{{namespace.upper()}}_STRUCTS_H_
#define {{DIR}}_{{namespace.upper()}}_STRUCTS_H_
-#include "absl/strings/string_view.h"
{% set api = metadata.api.lower() %}
{% set CAPI = metadata.c_prefix %}
#include "dawn/{{api}}_cpp.h"
@@ -105,19 +104,6 @@
// Equality operators, mostly for testing. Note that this tests
// strict pointer-pointer equality if the struct contains member pointers.
bool operator==(const StringView& rhs) const;
-
- #ifndef ABSL_USES_STD_STRING_VIEW
- // NOLINTNEXTLINE(runtime/explicit) allow implicit conversion
- operator absl::string_view() const {
- if (this->length == wgpu::kStrlen) {
- if (IsUndefined()) {
- return {};
- }
- return {this->data};
- }
- return {this->data, this->length};
- }
- #endif
};
{% for type in by_category["structure"] if type.name.get() not in SpecialStructures %}
diff --git a/src/dawn/native/BUILD.gn b/src/dawn/native/BUILD.gn
index ac0a7fb..6dd278e 100644
--- a/src/dawn/native/BUILD.gn
+++ b/src/dawn/native/BUILD.gn
@@ -68,7 +68,6 @@
"${dawn_root}/third_party/gn/abseil-cpp:inlined_vector",
"${dawn_root}/third_party/gn/abseil-cpp:span",
"${dawn_root}/third_party/gn/abseil-cpp:str_format",
- "${dawn_root}/third_party/gn/abseil-cpp:string_view",
"${dawn_root}/third_party/gn/abseil-cpp:strings",
]
}
diff --git a/src/dawn/native/Pipeline.cpp b/src/dawn/native/Pipeline.cpp
index 2a898eb..18df938 100644
--- a/src/dawn/native/Pipeline.cpp
+++ b/src/dawn/native/Pipeline.cpp
@@ -28,10 +28,10 @@
#include "dawn/native/Pipeline.h"
#include <algorithm>
+#include <string_view>
#include <utility>
#include "absl/container/flat_hash_set.h"
-#include "absl/strings/string_view.h"
#include "dawn/common/Enumerator.h"
#include "dawn/native/BindGroupLayout.h"
#include "dawn/native/Device.h"
@@ -115,7 +115,7 @@
// Keep an initialized constants sets to handle duplicate initialization cases
absl::flat_hash_set<std::string_view> stageInitializedConstantIdentifiers;
for (uint32_t i = 0; i < constantCount; i++) {
- absl::string_view key = {constants[i].key};
+ std::string_view key = {constants[i].key};
double value = constants[i].value;
DAWN_INVALID_IF(!metadata.overrides.contains(key),
diff --git a/src/dawn/native/ShaderModule.cpp b/src/dawn/native/ShaderModule.cpp
index cce91b8..bf2df9a 100644
--- a/src/dawn/native/ShaderModule.cpp
+++ b/src/dawn/native/ShaderModule.cpp
@@ -31,6 +31,7 @@
#include <limits>
#include <set>
#include <sstream>
+#include <string_view>
#include <utility>
#include "dawn/common/Constants.h"
@@ -1574,7 +1575,7 @@
return ObjectType::ShaderModule;
}
-bool ShaderModuleBase::HasEntryPoint(absl::string_view entryPoint) const {
+bool ShaderModuleBase::HasEntryPoint(std::string_view entryPoint) const {
return mEntryPoints.contains(entryPoint);
}
@@ -1595,7 +1596,7 @@
return mStrictMath;
}
-const EntryPointMetadata& ShaderModuleBase::GetEntryPoint(absl::string_view entryPoint) const {
+const EntryPointMetadata& ShaderModuleBase::GetEntryPoint(std::string_view entryPoint) const {
DAWN_ASSERT(HasEntryPoint(entryPoint));
return *mEntryPoints.at(entryPoint);
}
diff --git a/src/dawn/native/ShaderModule.h b/src/dawn/native/ShaderModule.h
index 868d212..2ef6802 100644
--- a/src/dawn/native/ShaderModule.h
+++ b/src/dawn/native/ShaderModule.h
@@ -33,13 +33,13 @@
#include <map>
#include <memory>
#include <string>
+#include <string_view>
#include <utility>
#include <variant>
#include <vector>
#include "absl/container/flat_hash_map.h"
#include "absl/container/flat_hash_set.h"
-#include "absl/strings/string_view.h"
#include "dawn/common/Constants.h"
#include "dawn/common/ContentLessObjectCacheable.h"
#include "dawn/common/MutexProtected.h"
@@ -350,7 +350,7 @@
ObjectType GetType() const override;
// Return true iff the program has an entrypoint called `entryPoint`.
- bool HasEntryPoint(absl::string_view entryPoint) const;
+ bool HasEntryPoint(std::string_view entryPoint) const;
// Return the number of entry points for a stage.
size_t GetEntryPointCount(SingleShaderStage stage) const { return mEntryPointCounts[stage]; }
@@ -361,7 +361,7 @@
// Return the metadata for the given `entryPoint`. HasEntryPoint with the same argument
// must be true.
- const EntryPointMetadata& GetEntryPoint(absl::string_view entryPoint) const;
+ const EntryPointMetadata& GetEntryPoint(std::string_view entryPoint) const;
// Functions necessary for the unordered_set<ShaderModuleBase*>-based cache.
size_t ComputeContentHash() override;
diff --git a/src/dawn/native/webgpu_absl_format.cpp b/src/dawn/native/webgpu_absl_format.cpp
index 559f776..44ff59d 100644
--- a/src/dawn/native/webgpu_absl_format.cpp
+++ b/src/dawn/native/webgpu_absl_format.cpp
@@ -28,6 +28,7 @@
#include "dawn/native/webgpu_absl_format.h"
#include <string>
+#include <string_view>
#include <vector>
#include "dawn/common/MatchVariant.h"
@@ -701,7 +702,7 @@
}
s->Append("\"");
- s->Append(absl::string_view(value));
+ s->Append(std::string_view(value));
s->Append("\"");
return {true};
}
diff --git a/src/dawn/tests/unittests/validation/PixelLocalStorageTests.cpp b/src/dawn/tests/unittests/validation/PixelLocalStorageTests.cpp
index ebd7356..058c7da 100644
--- a/src/dawn/tests/unittests/validation/PixelLocalStorageTests.cpp
+++ b/src/dawn/tests/unittests/validation/PixelLocalStorageTests.cpp
@@ -26,6 +26,7 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <string>
+#include <string_view>
#include <vector>
#include "dawn/common/NonMovable.h"
@@ -360,14 +361,12 @@
}
}
- void TestFragmentAndLayoutCompat(const PLSSpec& layoutSpec,
- absl::string_view fs,
- bool success) {
+ void TestFragmentAndLayoutCompat(const PLSSpec& layoutSpec, std::string_view fs, bool success) {
TestFragmentAndLayoutCompat(MakePipelineLayout(layoutSpec), fs, success);
}
void TestFragmentAndLayoutCompat(const wgpu::PipelineLayout& layout,
- absl::string_view fs,
+ std::string_view fs,
bool success) {
wgpu::ShaderModule fsModule = utils::CreateShaderModule(device, fs.data());
wgpu::ShaderModule vsModule = utils::CreateShaderModule(device, R"(
diff --git a/src/dawn/utils/BUILD.gn b/src/dawn/utils/BUILD.gn
index ad2baee..d009127 100644
--- a/src/dawn/utils/BUILD.gn
+++ b/src/dawn/utils/BUILD.gn
@@ -143,7 +143,6 @@
"${dawn_root}/third_party/gn/abseil-cpp:flat_hash_map",
"${dawn_root}/third_party/gn/abseil-cpp:span",
"${dawn_root}/third_party/gn/abseil-cpp:str_format",
- "${dawn_root}/third_party/gn/abseil-cpp:string_view",
"${dawn_root}/third_party/gn/abseil-cpp:strings",
]
}
diff --git a/src/dawn/utils/CMakeLists.txt b/src/dawn/utils/CMakeLists.txt
index 5eb7120..bc77549 100644
--- a/src/dawn/utils/CMakeLists.txt
+++ b/src/dawn/utils/CMakeLists.txt
@@ -134,7 +134,6 @@
absl::span
PRIVATE_DEPENDS
absl::strings
- absl::string_view
absl::str_format_internal
absl::flat_hash_map
${private_system_depends}
diff --git a/src/dawn/utils/CommandLineParser.cpp b/src/dawn/utils/CommandLineParser.cpp
index b891875..eca9e03 100644
--- a/src/dawn/utils/CommandLineParser.cpp
+++ b/src/dawn/utils/CommandLineParser.cpp
@@ -38,7 +38,7 @@
// OptionBase
-CommandLineParser::OptionBase::OptionBase(absl::string_view name, absl::string_view desc)
+CommandLineParser::OptionBase::OptionBase(std::string_view name, std::string_view desc)
: mName(name), mDescription(desc), mParameter("value") {}
CommandLineParser::OptionBase::~OptionBase() = default;
@@ -64,7 +64,7 @@
}
CommandLineParser::OptionBase::ParseResult CommandLineParser::OptionBase::Parse(
- absl::Span<const absl::string_view> args) {
+ absl::Span<const std::string_view> args) {
auto result = ParseImpl(args);
if (result.success) {
mSet = true;
@@ -74,7 +74,7 @@
// BoolOption
-CommandLineParser::BoolOption::BoolOption(absl::string_view name, absl::string_view desc)
+CommandLineParser::BoolOption::BoolOption(std::string_view name, std::string_view desc)
: Option(name, desc) {}
CommandLineParser::BoolOption::~BoolOption() = default;
@@ -88,7 +88,7 @@
}
CommandLineParser::OptionBase::ParseResult CommandLineParser::BoolOption::ParseImpl(
- absl::Span<const absl::string_view> args) {
+ absl::Span<const std::string_view> args) {
// Explicit true
if (!args.empty() && args.front() == "true") {
if (IsSet()) {
@@ -121,7 +121,7 @@
// StringOption
-CommandLineParser::StringOption::StringOption(absl::string_view name, absl::string_view desc)
+CommandLineParser::StringOption::StringOption(std::string_view name, std::string_view desc)
: Option(name, desc) {}
CommandLineParser::StringOption::~StringOption() = default;
@@ -131,7 +131,7 @@
}
CommandLineParser::OptionBase::ParseResult CommandLineParser::StringOption::ParseImpl(
- absl::Span<const absl::string_view> args) {
+ absl::Span<const std::string_view> args) {
if (IsSet()) {
return {false, args, "cannot be set multiple times"};
}
@@ -146,8 +146,7 @@
// StringListOption
-CommandLineParser::StringListOption::StringListOption(absl::string_view name,
- absl::string_view desc)
+CommandLineParser::StringListOption::StringListOption(std::string_view name, std::string_view desc)
: Option(name, desc) {}
CommandLineParser::StringListOption::~StringListOption() = default;
@@ -165,12 +164,12 @@
}
CommandLineParser::OptionBase::ParseResult CommandLineParser::StringListOption::ParseImpl(
- absl::Span<const absl::string_view> args) {
+ absl::Span<const std::string_view> args) {
if (args.empty()) {
return {false, args, "expected a value"};
}
- for (absl::string_view s : absl::StrSplit(args.front(), ",")) {
+ for (std::string_view s : absl::StrSplit(args.front(), ",")) {
mValue.push_back(std::string{s});
}
return {true, args.subspan(1)};
@@ -178,24 +177,24 @@
// CommandLineParser
-CommandLineParser::BoolOption& CommandLineParser::AddBool(absl::string_view name,
- absl::string_view desc) {
+CommandLineParser::BoolOption& CommandLineParser::AddBool(std::string_view name,
+ std::string_view desc) {
return AddOption(std::make_unique<BoolOption>(name, desc));
}
-CommandLineParser::StringOption& CommandLineParser::AddString(absl::string_view name,
- absl::string_view desc) {
+CommandLineParser::StringOption& CommandLineParser::AddString(std::string_view name,
+ std::string_view desc) {
return AddOption(std::make_unique<StringOption>(name, desc));
}
-CommandLineParser::StringListOption& CommandLineParser::AddStringList(absl::string_view name,
- absl::string_view desc) {
+CommandLineParser::StringListOption& CommandLineParser::AddStringList(std::string_view name,
+ std::string_view desc) {
return AddOption(std::make_unique<StringListOption>(name, desc));
}
// static
-std::string CommandLineParser::JoinConversionNames(absl::Span<const absl::string_view> names,
- absl::string_view separator) {
+std::string CommandLineParser::JoinConversionNames(absl::Span<const std::string_view> names,
+ std::string_view separator) {
return absl::StrJoin(names, separator);
}
@@ -206,7 +205,7 @@
// static
const CommandLineParser::ParseOptions CommandLineParser::kDefaultParseOptions = {};
-CommandLineParser::ParseResult CommandLineParser::Parse(absl::Span<const absl::string_view> args,
+CommandLineParser::ParseResult CommandLineParser::Parse(absl::Span<const std::string_view> args,
const ParseOptions& parseOptions) {
// Build the map of name to option.
absl::flat_hash_map<std::string, OptionBase*> nameToOption;
@@ -293,7 +292,7 @@
CommandLineParser::ParseResult CommandLineParser::Parse(const std::vector<std::string>& args,
const ParseOptions& parseOptions) {
- std::vector<absl::string_view> viewArgs;
+ std::vector<std::string_view> viewArgs;
for (const auto& arg : args) {
viewArgs.push_back(arg);
}
@@ -304,7 +303,7 @@
CommandLineParser::ParseResult CommandLineParser::Parse(int argc,
const char** argv,
const ParseOptions& parseOptions) {
- std::vector<absl::string_view> args;
+ std::vector<std::string_view> args;
for (int i = 1; i < argc; i++) {
args.push_back(argv[i]);
}
@@ -314,7 +313,7 @@
void CommandLineParser::PrintHelp(std::ostream& s) {
// Sort options in alphabetical order using a trick that std::tuple is sorted lexicographically.
- std::vector<std::tuple<absl::string_view, OptionBase*>> sortedOptions;
+ std::vector<std::tuple<std::string_view, OptionBase*>> sortedOptions;
for (auto& option : mOptions) {
sortedOptions.emplace_back(option->GetName(), option.get());
}
diff --git a/src/dawn/utils/CommandLineParser.h b/src/dawn/utils/CommandLineParser.h
index 461c19f..d386e41 100644
--- a/src/dawn/utils/CommandLineParser.h
+++ b/src/dawn/utils/CommandLineParser.h
@@ -31,10 +31,10 @@
#include <memory>
#include <ostream>
#include <string>
+#include <string_view>
#include <utility>
#include <vector>
-#include "absl/strings/string_view.h"
#include "absl/types/span.h" // TODO(343500108): Use std::span when we have C++20.
#include "dawn/common/Assert.h"
#include "dawn/common/NonMovable.h"
@@ -80,7 +80,7 @@
// The base class for all options to let them interact with the parser.
class OptionBase : NonMovable {
public:
- OptionBase(absl::string_view name, absl::string_view desc);
+ OptionBase(std::string_view name, std::string_view desc);
virtual ~OptionBase();
const std::string& GetName() const;
@@ -92,13 +92,13 @@
struct ParseResult {
bool success;
- absl::Span<const absl::string_view> remainingArgs = {};
+ absl::Span<const std::string_view> remainingArgs = {};
std::string errorMessage = {};
};
- ParseResult Parse(absl::Span<const absl::string_view> args);
+ ParseResult Parse(absl::Span<const std::string_view> args);
protected:
- virtual ParseResult ParseImpl(absl::Span<const absl::string_view> args) = 0;
+ virtual ParseResult ParseImpl(absl::Span<const std::string_view> args) = 0;
bool mSet = false;
std::string mName;
@@ -123,47 +123,47 @@
// Can be set multiple times on the command line if not using the explicit true/false version.
class BoolOption : public Option<BoolOption> {
public:
- BoolOption(absl::string_view name, absl::string_view desc);
+ BoolOption(std::string_view name, std::string_view desc);
~BoolOption() override;
bool GetValue() const;
std::string GetParameter() const override;
private:
- ParseResult ParseImpl(absl::Span<const absl::string_view> args) override;
+ ParseResult ParseImpl(absl::Span<const std::string_view> args) override;
bool mValue = false;
};
- BoolOption& AddBool(absl::string_view name, absl::string_view desc = {});
+ BoolOption& AddBool(std::string_view name, std::string_view desc = {});
// An option returning a string. Defaults to the empty string.
class StringOption : public Option<StringOption> {
public:
- StringOption(absl::string_view name, absl::string_view desc);
+ StringOption(std::string_view name, std::string_view desc);
~StringOption() override;
std::string GetValue() const;
private:
- ParseResult ParseImpl(absl::Span<const absl::string_view> args) override;
+ ParseResult ParseImpl(absl::Span<const std::string_view> args) override;
std::string mValue;
};
- StringOption& AddString(absl::string_view name, absl::string_view desc = {});
+ StringOption& AddString(std::string_view name, std::string_view desc = {});
// An option returning a list of string split from a comma-separated argument, or the argument
// being set multiple times (or both). Defaults to an empty list.
class StringListOption : public Option<StringListOption> {
public:
- StringListOption(absl::string_view name, absl::string_view desc);
+ StringListOption(std::string_view name, std::string_view desc);
~StringListOption() override;
absl::Span<const std::string> GetValue() const;
std::vector<std::string> GetOwnedValue() const;
private:
- ParseResult ParseImpl(absl::Span<const absl::string_view> args) override;
+ ParseResult ParseImpl(absl::Span<const std::string_view> args) override;
std::vector<std::string> mValue;
};
- StringListOption& AddStringList(absl::string_view name, absl::string_view desc = {});
+ StringListOption& AddStringList(std::string_view name, std::string_view desc = {});
// An option converting a string name to a value. The default value can be set with .Default().
//
@@ -171,9 +171,9 @@
template <typename E>
class EnumOption : public Option<EnumOption<E>> {
public:
- EnumOption(std::vector<std::pair<absl::string_view, E>> conversions,
- absl::string_view name,
- absl::string_view desc);
+ EnumOption(std::vector<std::pair<std::string_view, E>> conversions,
+ std::string_view name,
+ std::string_view desc);
~EnumOption() override;
E GetValue() const;
@@ -182,18 +182,18 @@
EnumOption<E>& Default(E value);
private:
- std::string JoinNames(absl::string_view separator) const;
- OptionBase::ParseResult ParseImpl(absl::Span<const absl::string_view> args) override;
+ std::string JoinNames(std::string_view separator) const;
+ OptionBase::ParseResult ParseImpl(absl::Span<const std::string_view> args) override;
E mValue;
bool mHasDefault;
- std::vector<std::pair<absl::string_view, E>> mConversions;
+ std::vector<std::pair<std::string_view, E>> mConversions;
};
- static std::string JoinConversionNames(absl::Span<const absl::string_view> names,
- absl::string_view separator);
+ static std::string JoinConversionNames(absl::Span<const std::string_view> names,
+ std::string_view separator);
template <typename E>
- EnumOption<E>& AddEnum(std::vector<std::pair<absl::string_view, E>> conversions,
- absl::string_view name,
- absl::string_view desc = {}) {
+ EnumOption<E>& AddEnum(std::vector<std::pair<std::string_view, E>> conversions,
+ std::string_view name,
+ std::string_view desc = {}) {
return AddOption(std::make_unique<EnumOption<E>>(std::move(conversions), name, desc));
}
@@ -212,7 +212,7 @@
static const ParseOptions kDefaultParseOptions;
// Parse the arguments provided and set the options.
- ParseResult Parse(absl::Span<const absl::string_view> args,
+ ParseResult Parse(absl::Span<const std::string_view> args,
const ParseOptions& parseOptions = kDefaultParseOptions);
// Small wrappers around the previous Parse for ease of use.
@@ -252,9 +252,9 @@
// EnumOption<E>
template <typename E>
CommandLineParser::EnumOption<E>::EnumOption(
- std::vector<std::pair<absl::string_view, E>> conversions,
- absl::string_view name,
- absl::string_view desc)
+ std::vector<std::pair<std::string_view, E>> conversions,
+ std::string_view name,
+ std::string_view desc)
: Option<EnumOption<E>>(name, desc), mConversions(conversions) {}
template <typename E>
@@ -268,7 +268,7 @@
template <typename E>
CommandLineParser::OptionBase::ParseResult CommandLineParser::EnumOption<E>::ParseImpl(
- absl::Span<const absl::string_view> args) {
+ absl::Span<const std::string_view> args) {
if (this->IsSet()) {
return {false, args, "cannot be set multiple times"};
}
@@ -303,8 +303,8 @@
}
template <typename E>
-std::string CommandLineParser::EnumOption<E>::JoinNames(absl::string_view separator) const {
- std::vector<absl::string_view> names;
+std::string CommandLineParser::EnumOption<E>::JoinNames(std::string_view separator) const {
+ std::vector<std::string_view> names;
for (auto conversion : mConversions) {
names.push_back(conversion.first);
}