| // Copyright 2018 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. |
| |
| #include "chrome/chrome_cleaner/strings/string16_embedded_nulls.h" |
| |
| namespace chrome_cleaner { |
| |
| String16EmbeddedNulls::String16EmbeddedNulls() = default; |
| |
| String16EmbeddedNulls::String16EmbeddedNulls(nullptr_t) |
| : String16EmbeddedNulls() {} |
| |
| String16EmbeddedNulls::String16EmbeddedNulls(const String16EmbeddedNulls& str) = |
| default; |
| |
| String16EmbeddedNulls::String16EmbeddedNulls(const wchar_t* const array, |
| size_t size) { |
| // Empty strings should always be represented as an empty array. |
| if (array != nullptr && size > 0) |
| data_ = std::vector<wchar_t>(array, array + size); |
| } |
| |
| String16EmbeddedNulls::String16EmbeddedNulls(const std::vector<wchar_t>& str) |
| : String16EmbeddedNulls(str.data(), str.size()) {} |
| |
| String16EmbeddedNulls::String16EmbeddedNulls(const base::string16& str) |
| : String16EmbeddedNulls(str.data(), str.size()) {} |
| |
| String16EmbeddedNulls::String16EmbeddedNulls(base::StringPiece16 str) |
| : String16EmbeddedNulls(str.data(), str.size()) {} |
| |
| String16EmbeddedNulls::String16EmbeddedNulls(std::initializer_list<wchar_t> il) |
| : data_(il) {} |
| |
| String16EmbeddedNulls::~String16EmbeddedNulls() = default; |
| |
| String16EmbeddedNulls& String16EmbeddedNulls::operator=( |
| const String16EmbeddedNulls& str) = default; |
| |
| bool String16EmbeddedNulls::operator==(const String16EmbeddedNulls& str) const { |
| return CastAsStringPiece16() == str.CastAsStringPiece16(); |
| } |
| |
| size_t String16EmbeddedNulls::size() const { |
| return data_.size(); |
| } |
| |
| const base::StringPiece16 String16EmbeddedNulls::CastAsStringPiece16() const { |
| return base::StringPiece16(data_.data(), data_.size()); |
| } |
| |
| const wchar_t* String16EmbeddedNulls::CastAsWCharArray() const { |
| return data_.data(); |
| } |
| |
| const uint16_t* String16EmbeddedNulls::CastAsUInt16Array() const { |
| return reinterpret_cast<const uint16_t* const>(data_.data()); |
| } |
| |
| } // namespace chrome_cleaner |