pw_span: Rename span_common.inc to span_impl.h
span_common.inc is no longer included in multiple places, so can be a
regular header file.
Change-Id: I2fdf514571f3f6f1b13786dca0502dbb88875cc8
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/109852
Reviewed-by: Armando Montanez <amontanez@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
Pigweed-Auto-Submit: Wyatt Hepler <hepler@google.com>
diff --git a/pw_span/BUILD.bazel b/pw_span/BUILD.bazel
index d1a800d..f8fd228 100644
--- a/pw_span/BUILD.bazel
+++ b/pw_span/BUILD.bazel
@@ -24,7 +24,7 @@
pw_cc_library(
name = "pw_span",
- srcs = ["public/pw_span/internal/span_common.inc"],
+ srcs = ["public/pw_span/internal/span_impl.h"],
hdrs = [
"public/pw_span/internal/config.h",
"public/pw_span/span.h",
diff --git a/pw_span/BUILD.gn b/pw_span/BUILD.gn
index e9f1901..56d425a 100644
--- a/pw_span/BUILD.gn
+++ b/pw_span/BUILD.gn
@@ -93,7 +93,7 @@
public_deps += [ "$dir_pw_assert:assert" ]
}
- sources = [ "public/pw_span/internal/span_common.inc" ]
+ sources = [ "public/pw_span/internal/span_impl.h" ]
visibility = [ ":*" ]
}
diff --git a/pw_span/CMakeLists.txt b/pw_span/CMakeLists.txt
index 4e30377..5523459 100644
--- a/pw_span/CMakeLists.txt
+++ b/pw_span/CMakeLists.txt
@@ -19,7 +19,7 @@
HEADERS
public/pw_span/span.h
public/pw_span/internal/config.h
- public/pw_span/internal/span_common.inc
+ public/pw_span/internal/span_impl.h
PUBLIC_INCLUDES
public
PUBLIC_DEPS
@@ -33,9 +33,6 @@
span_test.cc
DEPS
pw_span
- DEFINES
- "PW_SPAN_TEST_INCLUDE=\"pw_span/span.h\""
- "PW_SPAN_TEST_NAMESPACE=pw"
GROUPS
modules
pw_span
diff --git a/pw_span/public/pw_span/internal/span_common.inc b/pw_span/public/pw_span/internal/span_impl.h
similarity index 97%
rename from pw_span/public/pw_span/internal/span_common.inc
rename to pw_span/public/pw_span/internal/span_impl.h
index ac68adc..3918bba 100644
--- a/pw_span/public/pw_span/internal/span_common.inc
+++ b/pw_span/public/pw_span/internal/span_impl.h
@@ -27,14 +27,12 @@
//
// A few changes were made to the Chromium version of span. These include:
// - Use std::data and std::size instead of base::* versions.
-// - Rename base namespace to std.
+// - Rename base namespace to pw.
// - Rename internal namespace to pw_span_internal.
// - Remove uses of checked_iterators.h and CHECK.
// - Replace make_span functions with C++17 class template deduction guides.
// - Use std::byte instead of uint8_t for compatibility with std::span.
-
-// This file does not have #pragma once! It is intended to be included in
-// multiple header files!
+#pragma once
#include <algorithm>
#include <array>
@@ -57,12 +55,7 @@
#define _PW_SPAN_ASSERT(arg)
#endif // PW_SPAN_ENABLE_ASSERTS
-// The file that includes this .inc file must define the following macros:
-//
-// * _PW_SPAN_COMMON_NAMEPACE_BEGIN
-// * _PW_SPAN_COMMON_NAMEPACE_END
-
-_PW_SPAN_COMMON_NAMEPACE_BEGIN
+namespace pw {
// [views.constants]
constexpr size_t dynamic_extent = std::numeric_limits<size_t>::max();
@@ -483,6 +476,6 @@
#endif // __cpp_deduction_guides
-_PW_SPAN_COMMON_NAMEPACE_END
+} // namespace pw
#undef _PW_SPAN_ASSERT
diff --git a/pw_span/public/pw_span/span.h b/pw_span/public/pw_span/span.h
index 69a118c..af0c63b 100644
--- a/pw_span/public/pw_span/span.h
+++ b/pw_span/public/pw_span/span.h
@@ -41,12 +41,7 @@
#else
-#define _PW_SPAN_COMMON_NAMEPACE_BEGIN namespace pw {
-#define _PW_SPAN_COMMON_NAMEPACE_END } // namespace pw
-
-#include "pw_span/internal/span_common.inc"
-
-#undef _PW_SPAN_COMMON_NAMEPACE_BEGIN
-#undef _PW_SPAN_COMMON_NAMEPACE_END
+// If std::span is not available, use Pigweed's span implementation.
+#include "pw_span/internal/span_impl.h"
#endif // defined(__cpp_lib_span) && __cpp_lib_span >= 202002L