// Copyright 2024 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef BASE_CONTAINERS_SPAN_WRITER_H_ #define BASE_CONTAINERS_SPAN_WRITER_H_ #include <optional> #include "base/containers/span.h" #include "base/memory/raw_span.h" #include "base/numerics/byte_conversions.h" namespace base { // A Writer to write into and consume elements from the front of a span // dynamically. // // SpanWriter is used to split off prefix spans from a larger span, reporting // errors if there's not enough room left (instead of crashing, as would happen // with span directly). template <class T> class SpanWriter { … }; template <class T, size_t N> SpanWriter(span<T, N>) -> SpanWriter<T>; } // namespace base #endif // BASE_CONTAINERS_SPAN_WRITER_H_