// Copyright 2013 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 "mojo/common/common_type_converters.h" #include #include "base/strings/utf_string_conversions.h" namespace mojo { // static String TypeConverter::Convert( const base::StringPiece& input) { if (input.empty()) { char c = 0; return String(&c, 0); } return String(input.data(), input.size()); } // static base::StringPiece TypeConverter::Convert( const String& input) { return input.get(); } // static String TypeConverter::Convert( const base::string16& input) { return TypeConverter::Convert( base::UTF16ToUTF8(input)); } // static base::string16 TypeConverter::Convert( const String& input) { return base::UTF8ToUTF16(input.To()); } std::string TypeConverter >::Convert( const Array& input) { if (input.is_null()) return std::string(); return std::string(reinterpret_cast(&input.front()), input.size()); } Array TypeConverter, std::string>::Convert( const std::string& input) { Array result(input.size()); memcpy(&result.front(), input.c_str(), input.size()); return result.Pass(); } } // namespace mojo