// Copyright 2023 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef PLATFORM_BASE_SPAN_H_ #define PLATFORM_BASE_SPAN_H_ #include #include #include #include #include #include #include #include #include "platform/base/type_util.h" namespace openscreen { // In Open Screen code, use these aliases for the most common types of Spans. // TODO(crbug.com/364687926): rename to byte_view.h and remove Span alias. using ByteView = std::span; using ByteBuffer = std::span; template using Span = std::span; inline ByteView ByteViewFromString(std::string_view str) { return ByteView(reinterpret_cast(str.data()), str.size()); } inline std::string ByteViewToString(ByteView bytes) { return std::string(reinterpret_cast(bytes.data()), bytes.size()); } } // namespace openscreen #endif // PLATFORM_BASE_SPAN_H_