| // Copyright 2016 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "src/ledger/lib/convert/convert.h" |
| |
| #include <string.h> |
| |
| #include <leveldb/slice.h> |
| |
| namespace convert { |
| |
| namespace { |
| const char kHexDigits[] = "0123456789ABCDEF"; |
| } |
| |
| std::vector<uint8_t> ExtendedStringView::ToArray() { |
| std::vector<uint8_t> result(size()); |
| memcpy(result.data(), data(), size()); |
| return result; |
| } |
| |
| flatbuffers::Offset<flatbuffers::Vector<uint8_t>> ExtendedStringView::ToFlatBufferVector( |
| flatbuffers::FlatBufferBuilder* builder) { |
| return builder->CreateVector(reinterpret_cast<const unsigned char*>(data()), size()); |
| } |
| |
| std::string ExtendedStringView::ToHex() { |
| std::string result; |
| result.reserve(size() * 2); |
| for (unsigned char c : *this) { |
| result.push_back(kHexDigits[c >> 4]); |
| result.push_back(kHexDigits[c & 0xf]); |
| } |
| return result; |
| } |
| |
| std::vector<uint8_t> ToArray(ExtendedStringView value) { return value.ToArray(); } |
| |
| std::string ToString(ExtendedStringView value) { return std::string(value); } |
| |
| flatbuffers::Offset<flatbuffers::Vector<uint8_t>> ToFlatBufferVector( |
| flatbuffers::FlatBufferBuilder* builder, ExtendedStringView value) { |
| return value.ToFlatBufferVector(builder); |
| } |
| |
| std::string ToHex(ExtendedStringView value) { return value.ToHex(); } |
| |
| } // namespace convert |