// Copyright 2017 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifdef UNSAFE_BUFFERS_BUILD // TODO(crbug.com/40285824): Remove this and convert code to safer constructs. #pragma allow_unsafe_buffers #endif #ifndef COMPONENTS_ZUCCHINI_BUFFER_VIEW_H_ #define COMPONENTS_ZUCCHINI_BUFFER_VIEW_H_ #include <stddef.h> #include <stdint.h> #include <string.h> #include <type_traits> #include "base/check_op.h" #include "base/ranges/algorithm.h" #include "components/zucchini/algorithm.h" namespace zucchini { // Describes a region within a buffer, with starting offset and size. struct BufferRegion { … }; namespace internal { // TODO(huangs): Rename to BasicBufferView. // BufferViewBase should not be used directly; it is an implementation used for // both BufferView and MutableBufferView. template <class T> class BufferViewBase { … }; } // namespace internal // Classes to encapsulate a contiguous sequence of raw data, without owning the // encapsulated memory regions. These are intended to be used as value types. ConstBufferView; MutableBufferView; } // namespace zucchini #endif // COMPONENTS_ZUCCHINI_BUFFER_VIEW_H_