pw_stream: Added a write method for single bytes

Change-Id: I54f82b620855d1d7e4e573c0058fda150821d9df
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/13794
Reviewed-by: Wyatt Hepler <hepler@google.com>
Reviewed-by: Armando Montanez <amontanez@google.com>
Commit-Queue: Shane Gomindes <shaneajg@google.com>
diff --git a/pw_stream/memory_stream_test.cc b/pw_stream/memory_stream_test.cc
index 9e37bf3..2aa3e67 100644
--- a/pw_stream/memory_stream_test.cc
+++ b/pw_stream/memory_stream_test.cc
@@ -88,6 +88,17 @@
   EXPECT_EQ(memory_writer.bytes_written(), 0u);
 }
 
+TEST(MemoryWriter, ValidateContents_SingleByteWrites) {
+  MemoryWriter memory_writer(memory_buffer);
+  EXPECT_TRUE(memory_writer.Write(std::byte{0x01}).ok());
+  EXPECT_EQ(memory_writer.bytes_written(), 1u);
+  EXPECT_EQ(memory_writer.data()[0], std::byte{0x01});
+
+  EXPECT_TRUE(memory_writer.Write(std::byte{0x7E}).ok());
+  EXPECT_EQ(memory_writer.bytes_written(), 2u);
+  EXPECT_EQ(memory_writer.data()[1], std::byte{0x7E});
+}
+
 #if CHECK_TEST_CRASHES
 
 // TODO(amontanez): Ensure that this test triggers an assert.
diff --git a/pw_stream/public/pw_stream/stream.h b/pw_stream/public/pw_stream/stream.h
index 13e30e9..85ad410 100644
--- a/pw_stream/public/pw_stream/stream.h
+++ b/pw_stream/public/pw_stream/stream.h
@@ -43,7 +43,7 @@
   Status Write(const void* data, size_t size_bytes) {
     return Write(std::span(static_cast<const std::byte*>(data), size_bytes));
   }
-
+  Status Write(const std::byte b) { return Write(&b, 1); }
   // Flush any buffered data, finalizing all writes.
   //
   // Generally speaking, the scope that instantiates the concrete `Writer`