5#ifndef MOLYBDEN_FIELD_CONTAINER_HPP
6#define MOLYBDEN_FIELD_CONTAINER_HPP
11#include "molybden/js/internal/js_accessible_field.hpp"
13namespace molybden::internal {
30 template <
class C,
class T>
31 int addField(Field<C, T> field,
const char* name);
37 JsValue getFieldValue(
const std::string& property_name);
42 [[nodiscard]]
bool hasField(
const std::string& property_name)
const;
52 bool setFieldValue(
const std::string& property_name,
const JsValue& value);
57 std::vector<std::string> propertyNames();
59 virtual ~FieldContainer() =
default;
62 std::map<std::string, std::unique_ptr<JsAccessibleField>> fields_;