pw_{log,log_rpc,multisink,protobuf,span}: Span explicit template params
`span` deduction guide uses not compatible with `std::span` deduction guide rules.
Bug: b/239856986
Change-Id: I8e672dbcaa06d690ddeeef1a9bbe9010201a1e53
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/111590
Reviewed-by: Wyatt Hepler <hepler@google.com>
Commit-Queue: Prabhu Karthikeyan Rajasekaran <prabhukr@google.com>
diff --git a/pw_log/proto_utils.cc b/pw_log/proto_utils.cc
index 7d1ce01..6ca31fb 100644
--- a/pw_log/proto_utils.cc
+++ b/pw_log/proto_utils.cc
@@ -41,7 +41,7 @@
}
// Defer status checks until the end.
- Status status = encoder.WriteMessage(as_bytes(span(message)));
+ Status status = encoder.WriteMessage(as_bytes(span<const char>(message)));
status = encoder.WriteLineLevel(PackLineLevel(line_number, level));
if (flags != 0) {
status = encoder.WriteFlags(flags);
@@ -50,13 +50,13 @@
// Module name and file name may or may not be present.
if (!module_name.empty()) {
- status = encoder.WriteModule(as_bytes(span(module_name)));
+ status = encoder.WriteModule(as_bytes(span<const char>(module_name)));
}
if (!file_name.empty()) {
- status = encoder.WriteFile(as_bytes(span(file_name)));
+ status = encoder.WriteFile(as_bytes(span<const char>(file_name)));
}
if (!thread_name.empty()) {
- status = encoder.WriteThread(as_bytes(span(thread_name)));
+ status = encoder.WriteThread(as_bytes(span<const char>(thread_name)));
}
PW_TRY(encoder.status());
return ConstByteSpan(encoder);
diff --git a/pw_log_rpc/log_filter_test.cc b/pw_log_rpc/log_filter_test.cc
index 7e2b827..f43a35a 100644
--- a/pw_log_rpc/log_filter_test.cc
+++ b/pw_log_rpc/log_filter_test.cc
@@ -48,7 +48,7 @@
ConstByteSpan thread) {
auto metadata = log_tokenized::Metadata::Set<log_level, module, flags, 0>();
return log::EncodeTokenizedLog(metadata,
- as_bytes(span(message)),
+ as_bytes(span<const char>(message)),
/*ticks_since_epoch=*/0,
thread,
buffer);
diff --git a/pw_log_rpc/log_service_test.cc b/pw_log_rpc/log_service_test.cc
index a8296be..f7eee9c 100644
--- a/pw_log_rpc/log_service_test.cc
+++ b/pw_log_rpc/log_service_test.cc
@@ -100,7 +100,7 @@
ConstByteSpan thread) {
Result<ConstByteSpan> encoded_log_result =
log::EncodeTokenizedLog(metadata,
- as_bytes(span(message)),
+ as_bytes(span<const char>(message)),
timestamp,
thread,
entry_encode_buffer_);
diff --git a/pw_log_rpc/rpc_log_drain.cc b/pw_log_rpc/rpc_log_drain.cc
index 57e5a8c..4b85e99 100644
--- a/pw_log_rpc/rpc_log_drain.cc
+++ b/pw_log_rpc/rpc_log_drain.cc
@@ -40,7 +40,7 @@
// Encode drop count and reason, if any, in log proto.
log::LogEntry::MemoryEncoder encoder(encoded_drop_message_buffer);
if (!reason.empty()) {
- encoder.WriteMessage(as_bytes(span(reason))).IgnoreError();
+ encoder.WriteMessage(as_bytes(span<const char>(reason))).IgnoreError();
}
encoder.WriteDropped(drop_count).IgnoreError();
if (!encoder.status().ok()) {
diff --git a/pw_log_rpc/rpc_log_drain_test.cc b/pw_log_rpc/rpc_log_drain_test.cc
index c28c44e..97b3eed 100644
--- a/pw_log_rpc/rpc_log_drain_test.cc
+++ b/pw_log_rpc/rpc_log_drain_test.cc
@@ -206,7 +206,7 @@
return {.metadata = kSampleMetadata,
.timestamp = kSampleTimestamp,
.dropped = 0,
- .tokenized_data = as_bytes(span(message)),
+ .tokenized_data = as_bytes(span<const char>(message)),
.thread = as_bytes(span(kSampleThreadName))};
}
diff --git a/pw_multisink/multisink_test.cc b/pw_multisink/multisink_test.cc
index 8d5e247..041550c 100644
--- a/pw_multisink/multisink_test.cc
+++ b/pw_multisink/multisink_test.cc
@@ -510,7 +510,7 @@
MultiSink multisink(buffer);
for (std::string_view entry : kExpectedEntries) {
- multisink.HandleEntry(as_bytes(span(entry)));
+ multisink.HandleEntry(as_bytes(span<const char>(entry)));
}
size_t entry_count = 0;
@@ -541,7 +541,7 @@
MultiSink multisink(buffer);
for (std::string_view entry : kExpectedEntries) {
- multisink.HandleEntry(as_bytes(span(entry)));
+ multisink.HandleEntry(as_bytes(span<const char>(entry)));
}
size_t entry_count = 0;
diff --git a/pw_protobuf/map_utils_test.cc b/pw_protobuf/map_utils_test.cc
index 98a113c..56a33d0 100644
--- a/pw_protobuf/map_utils_test.cc
+++ b/pw_protobuf/map_utils_test.cc
@@ -81,8 +81,8 @@
std::byte stream_pipe_buffer[1];
for (auto ele : kMapData) {
- stream::MemoryReader key_reader(as_bytes(span{ele.key}));
- stream::MemoryReader value_reader(as_bytes(span{ele.value}));
+ stream::MemoryReader key_reader(as_bytes(span<const char>{ele.key}));
+ stream::MemoryReader value_reader(as_bytes(span<const char>{ele.value}));
ASSERT_OK(WriteProtoStringToBytesMapEntry(ele.field_number,
key_reader,
ele.key.size(),
@@ -119,8 +119,8 @@
constexpr uint32_t kFieldNumber = 1;
std::string_view key = "key_bar";
std::string_view value = "bar_a";
- stream::MemoryReader key_reader(as_bytes(span{key}));
- stream::MemoryReader value_reader(as_bytes(span{value}));
+ stream::MemoryReader key_reader(as_bytes(span<const char>{key}));
+ stream::MemoryReader value_reader(as_bytes(span<const char>{value}));
std::byte stream_pipe_buffer[1];
ASSERT_EQ(
WriteProtoStringToBytesMapEntry(kFieldNumber,
@@ -138,8 +138,8 @@
stream::MemoryWriter writer(encode_buffer);
std::string_view key = "key_bar";
std::string_view value = "bar_a";
- stream::MemoryReader key_reader(as_bytes(span{key}));
- stream::MemoryReader value_reader(as_bytes(span{value}));
+ stream::MemoryReader key_reader(as_bytes(span<const char>{key}));
+ stream::MemoryReader value_reader(as_bytes(span<const char>{value}));
std::byte stream_pipe_buffer[1];
ASSERT_EQ(
diff --git a/pw_protobuf/message.cc b/pw_protobuf/message.cc
index ea2797d..bc4f31b 100644
--- a/pw_protobuf/message.cc
+++ b/pw_protobuf/message.cc
@@ -136,7 +136,7 @@
}
Result<bool> String::Equal(std::string_view str) {
- return Bytes::Equal(as_bytes(span{str}));
+ return Bytes::Equal(as_bytes(span<const char>{str}));
}
Message::iterator& Message::iterator::operator++() {
diff --git a/pw_protobuf/public/pw_protobuf/encoder.h b/pw_protobuf/public/pw_protobuf/encoder.h
index ee3d52b..cea42f7 100644
--- a/pw_protobuf/public/pw_protobuf/encoder.h
+++ b/pw_protobuf/public/pw_protobuf/encoder.h
@@ -576,7 +576,7 @@
//
// Precondition: Encoder has no active child encoder.
Status WriteString(uint32_t field_number, std::string_view value) {
- return WriteBytes(field_number, as_bytes(span(value)));
+ return WriteBytes(field_number, as_bytes(span<const char>(value)));
}
// Writes a proto string key-value pair.
diff --git a/pw_span/span_test.cc b/pw_span/span_test.cc
index ba14551..9e46d53 100644
--- a/pw_span/span_test.cc
+++ b/pw_span/span_test.cc
@@ -107,7 +107,7 @@
TEST(SpanTest, DeductionGuides_MutableContainerWithConstElements) {
std::string_view string("Hello");
- auto the_span = span(string);
+ auto the_span = span<const char>(string);
static_assert(the_span.extent == dynamic_extent);
EXPECT_STREQ("Hello", the_span.data());