xref: /aosp_15_r20/external/libchrome/base/strings/nullable_string16.cc (revision 635a864187cb8b6c713ff48b7e790a6b21769273)
1*635a8641SAndroid Build Coastguard Worker // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2*635a8641SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*635a8641SAndroid Build Coastguard Worker // found in the LICENSE file.
4*635a8641SAndroid Build Coastguard Worker 
5*635a8641SAndroid Build Coastguard Worker #include "base/strings/nullable_string16.h"
6*635a8641SAndroid Build Coastguard Worker 
7*635a8641SAndroid Build Coastguard Worker #include <ostream>
8*635a8641SAndroid Build Coastguard Worker #include <utility>
9*635a8641SAndroid Build Coastguard Worker 
10*635a8641SAndroid Build Coastguard Worker namespace base {
11*635a8641SAndroid Build Coastguard Worker NullableString16::NullableString16() = default;
12*635a8641SAndroid Build Coastguard Worker NullableString16::NullableString16(const NullableString16& other) = default;
13*635a8641SAndroid Build Coastguard Worker NullableString16::NullableString16(NullableString16&& other) = default;
14*635a8641SAndroid Build Coastguard Worker 
NullableString16(const string16 & string,bool is_null)15*635a8641SAndroid Build Coastguard Worker NullableString16::NullableString16(const string16& string, bool is_null) {
16*635a8641SAndroid Build Coastguard Worker   if (!is_null)
17*635a8641SAndroid Build Coastguard Worker     string_.emplace(string);
18*635a8641SAndroid Build Coastguard Worker }
19*635a8641SAndroid Build Coastguard Worker 
NullableString16(Optional<string16> optional_string16)20*635a8641SAndroid Build Coastguard Worker NullableString16::NullableString16(Optional<string16> optional_string16)
21*635a8641SAndroid Build Coastguard Worker     : string_(std::move(optional_string16)) {}
22*635a8641SAndroid Build Coastguard Worker 
23*635a8641SAndroid Build Coastguard Worker NullableString16::~NullableString16() = default;
24*635a8641SAndroid Build Coastguard Worker NullableString16& NullableString16::operator=(const NullableString16& other) =
25*635a8641SAndroid Build Coastguard Worker     default;
26*635a8641SAndroid Build Coastguard Worker NullableString16& NullableString16::operator=(NullableString16&& other) =
27*635a8641SAndroid Build Coastguard Worker     default;
28*635a8641SAndroid Build Coastguard Worker 
operator <<(std::ostream & out,const NullableString16 & value)29*635a8641SAndroid Build Coastguard Worker std::ostream& operator<<(std::ostream& out, const NullableString16& value) {
30*635a8641SAndroid Build Coastguard Worker   return value.is_null() ? out << "(null)" : out << value.string();
31*635a8641SAndroid Build Coastguard Worker }
32*635a8641SAndroid Build Coastguard Worker 
33*635a8641SAndroid Build Coastguard Worker }  // namespace base
34