| // Copyright 2024 The Chromium Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #ifndef QUICHE_COMMON_VECTORIZED_IO_UTILS_H_ | |
| #define QUICHE_COMMON_VECTORIZED_IO_UTILS_H_ | |
| #include <cstddef> | |
| #include "absl/strings/string_view.h" | |
| #include "absl/types/span.h" | |
| #include "quiche/common/platform/api/quiche_export.h" | |
| namespace quiche { | |
| // Computes the total size of all strings in the provided span. | |
| size_t QUICHE_EXPORT | |
| TotalStringViewSpanSize(absl::Span<const absl::string_view> span); | |
| // Copies data contained in `inputs` into `output`, up until either the `output` | |
| // is full or the `inputs` are copied fully; returns the actual number of bytes | |
| // copied. | |
| size_t QUICHE_EXPORT GatherStringViewSpan( | |
| absl::Span<const absl::string_view> inputs, absl::Span<char> output); | |
| } // namespace quiche | |
| #endif // QUICHE_COMMON_VECTORIZED_IO_UTILS_H_ |