diff --git a/quic/platform/api/quic_mem_slice_span.h b/quic/platform/api/quic_mem_slice_span.h
index 781382e..4fdf059 100644
--- a/quic/platform/api/quic_mem_slice_span.h
+++ b/quic/platform/api/quic_mem_slice_span.h
@@ -29,16 +29,9 @@
 
   ~QuicMemSliceSpan() = default;
 
-  // Save data buffers to |send_buffer| and returns the amount of saved data.
-  // |send_buffer| will hold a reference to all data buffer.
-  QuicByteCount SaveMemSlicesInSendBuffer(QuicStreamSendBuffer* send_buffer) {
-    return impl_.SaveMemSlicesInSendBuffer(send_buffer);
-  }
-
-  // Save data buffers as message data in |message_frame|. |message_frame| will
-  // hold a reference to all data buffers.
-  void SaveMemSlicesAsMessageData(QuicMessageFrame* message_frame) {
-    impl_.SaveMemSlicesAsMessageData(message_frame);
+  template <typename ConsumeFunction>
+  QuicByteCount ConsumeAll(ConsumeFunction consume) {
+    return impl_.ConsumeAll(consume);
   }
 
   // Return data of the span at |index| by the form of a QuicStringPiece.
diff --git a/quic/platform/api/quic_mem_slice_span_test.cc b/quic/platform/api/quic_mem_slice_span_test.cc
index b4c5e51..067a7a4 100644
--- a/quic/platform/api/quic_mem_slice_span_test.cc
+++ b/quic/platform/api/quic_mem_slice_span_test.cc
@@ -5,7 +5,7 @@
 #include "net/third_party/quiche/src/quic/platform/api/quic_mem_slice_span.h"
 
 #include "net/third_party/quiche/src/quic/core/quic_simple_buffer_allocator.h"
-#include "net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h"
+#include "net/third_party/quiche/src/quic/core/quic_types.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_flags.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_test.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_test_mem_slice_vector.h"
@@ -26,23 +26,20 @@
   std::vector<std::pair<char*, size_t>> buffers_;
 };
 
-TEST_F(QuicMemSliceSpanImplTest, SaveDataInSendBuffer) {
+TEST_F(QuicMemSliceSpanImplTest, ConsumeAll) {
   SimpleBufferAllocator allocator;
-  QuicStreamSendBuffer send_buffer(&allocator);
   QuicTestMemSliceVector vector(buffers_);
 
-  EXPECT_EQ(10 * 1024u, vector.span().SaveMemSlicesInSendBuffer(&send_buffer));
-  EXPECT_EQ(10u, send_buffer.size());
-}
+  int num_slices = 0;
+  QuicByteCount bytes_consumed =
+      vector.span().ConsumeAll([&](QuicMemSlice slice) {
+        EXPECT_EQ(data_, slice.data());
+        EXPECT_EQ(1024, slice.length());
+        ++num_slices;
+      });
 
-TEST_F(QuicMemSliceSpanImplTest, SaveEmptyMemSliceInSendBuffer) {
-  SimpleBufferAllocator allocator;
-  QuicStreamSendBuffer send_buffer(&allocator);
-  buffers_.push_back(std::make_pair(nullptr, 0));
-  QuicTestMemSliceVector vector(buffers_);
-  EXPECT_EQ(10 * 1024u, vector.span().SaveMemSlicesInSendBuffer(&send_buffer));
-  // Verify the empty slice does not get saved.
-  EXPECT_EQ(10u, send_buffer.size());
+  EXPECT_EQ(10 * 1024u, bytes_consumed);
+  EXPECT_EQ(10, num_slices);
 }
 
 }  // namespace
