blob: e68b814b52393ea78cc57afbd1304d3d5949508a [file] [log] [blame]
// Copyright 2022 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.
#ifndef LIB_DRIVER_COMPONENT_CPP_NODE_PROPERTIES_H_
#define LIB_DRIVER_COMPONENT_CPP_NODE_PROPERTIES_H_
#include <fidl/fuchsia.driver.framework/cpp/natural_types.h>
#include <lib/driver/component/cpp/node_wire_properties.h>
#include <string_view>
namespace fdf {
inline fuchsia_driver_framework::NodeProperty MakeProperty(std::string_view key,
std::string_view value) {
return fuchsia_driver_framework::NodeProperty{
{.key = fuchsia_driver_framework::NodePropertyKey::WithStringValue(std::string(key)),
.value = fuchsia_driver_framework::NodePropertyValue::WithStringValue(std::string(value))}};
}
inline fuchsia_driver_framework::NodeProperty MakeProperty(std::string_view key,
const char* value) {
return MakeProperty(key, std::string_view(value));
}
inline fuchsia_driver_framework::NodeProperty MakeProperty(std::string_view key, bool value) {
return fuchsia_driver_framework::NodeProperty{
{.key = fuchsia_driver_framework::NodePropertyKey::WithStringValue(std::string(key)),
.value = fuchsia_driver_framework::NodePropertyValue::WithBoolValue(value)}};
}
inline fuchsia_driver_framework::NodeProperty MakeProperty(std::string_view key, uint32_t value) {
return fuchsia_driver_framework::NodeProperty{
{.key = fuchsia_driver_framework::NodePropertyKey::WithStringValue(std::string(key)),
.value = fuchsia_driver_framework::NodePropertyValue::WithIntValue(value)}};
}
inline fuchsia_driver_framework::NodeProperty2 MakeProperty2(std::string_view key,
std::string_view value) {
return fuchsia_driver_framework::NodeProperty2{
{.key = std::string(key),
.value = fuchsia_driver_framework::NodePropertyValue::WithStringValue(std::string(value))}};
}
inline fuchsia_driver_framework::NodeProperty2 MakeProperty2(std::string_view key,
const char* value) {
return MakeProperty2(key, std::string_view(value));
}
inline fuchsia_driver_framework::NodeProperty2 MakeProperty2(std::string_view key, bool value) {
return fuchsia_driver_framework::NodeProperty2{
{.key = std::string(key),
.value = fuchsia_driver_framework::NodePropertyValue::WithBoolValue(value)}};
}
inline fuchsia_driver_framework::NodeProperty2 MakeProperty2(std::string_view key, uint32_t value) {
return fuchsia_driver_framework::NodeProperty2{
{.key = std::string(key),
.value = fuchsia_driver_framework::NodePropertyValue::WithIntValue(value)}};
}
} // namespace fdf
#endif // LIB_DRIVER_COMPONENT_CPP_NODE_PROPERTIES_H_