// Copyright 2014 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/public/cpp/bindings/lib/string_serialization.h" #include namespace mojo { size_t GetSerializedSize_(const String& input) { if (!input) return 0; return internal::Align(sizeof(internal::String_Data) + input.size()); } void Serialize_(const String& input, internal::Buffer* buf, internal::String_Data** output) { if (input) { internal::String_Data* result = internal::String_Data::New(input.size(), buf); memcpy(result->storage(), input.data(), input.size()); *output = result; } else { *output = NULL; } } void Deserialize_(internal::String_Data* input, String* output) { if (input) { String result(input->storage(), input->size()); result.Swap(output); } else { output->reset(); } } } // namespace mojo