| // Copyright 2023 The ChromiumOS Authors | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #include "net-base/byte_utils.h" | |
| #include <string.h> | |
| #include <base/sys_byteorder.h> | |
| namespace net_base::byte_utils { | |
| std::vector<uint8_t> StringToCStringBytes(std::string_view str) { | |
| const size_t len = strnlen(str.data(), str.size()); | |
| std::vector<uint8_t> bytes{ | |
| reinterpret_cast<const uint8_t*>(str.data()), | |
| reinterpret_cast<const uint8_t*>(str.data()) + len}; | |
| bytes.push_back(0); // Add a null character at the end. | |
| return bytes; | |
| } | |
| std::string StringFromCStringBytes(base::span<const uint8_t> bytes) { | |
| const size_t len = | |
| strnlen(reinterpret_cast<const char*>(bytes.data()), bytes.size()); | |
| return {reinterpret_cast<const char*>(bytes.data()), len}; | |
| } | |
| std::vector<uint8_t> ByteStringToBytes(std::string_view bytes) { | |
| return {reinterpret_cast<const uint8_t*>(bytes.data()), | |
| reinterpret_cast<const uint8_t*>(bytes.data() + bytes.size())}; | |
| } | |
| base::span<const uint8_t> ByteStringAsBytes(std::string_view bytes) { | |
| return {reinterpret_cast<const uint8_t*>(bytes.data()), bytes.size()}; | |
| } | |
| std::string ByteStringFromBytes(base::span<const uint8_t> bytes) { | |
| return {reinterpret_cast<const char*>(bytes.data()), bytes.size()}; | |
| } | |
| } // namespace net_base::byte_utils |