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