blob: 87e1184ae73f566039fd86f09bbd1a52208a256f [file] [log] [blame]
// Copyright 2017 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 <lib/fsl/vmo/strings.h>
#include <lib/module_resolver/cpp/formatting.h>
namespace modular {
std::ostream& operator<<(std::ostream& os,
const fuchsia::modular::Intent& intent) {
os << "{ action: " << intent.action << ", parameters: [" << std::endl;
for (auto it = intent.parameters->begin(); it != intent.parameters->end();
++it) {
os << " " << it->name << ": " << it->data << "," << std::endl;
}
os << " ] }";
return os;
}
std::ostream& operator<<(
std::ostream& os,
const fuchsia::modular::IntentParameterData& parameter_data) {
if (parameter_data.is_json()) {
std::string json;
FXL_CHECK(fsl::StringFromVmo(parameter_data.json(), &json));
os << json;
} else if (parameter_data.is_entity_reference()) {
os << "[ref: " << parameter_data.entity_reference() << "]";
} else if (parameter_data.is_entity_type()) {
for (const auto& type : parameter_data.entity_type()) {
os << type << ", ";
}
}
return os;
}
} // namespace modular