#ifndef UI_VIEWS_METADATA_VIEW_FACTORY_INTERNAL_H_
#define UI_VIEWS_METADATA_VIEW_FACTORY_INTERNAL_H_
#include <functional>
#include <map>
#include <memory>
#include <optional>
#include <tuple>
#include <utility>
#include <vector>
#include "base/memory/raw_ptr.h"
#include "ui/base/class_property.h"
#include "ui/base/metadata/base_type_conversion.h"
#include "ui/views/views_export.h"
namespace views {
class View;
template <typename T>
class Builder { … };
namespace internal {
template <typename T>
class ViewClassTrait { … };
ViewClassTrait<Builder<T>>;
class PropertySetterBase { … };
template <typename TClass,
typename TValue,
typename TSig,
TSig Set,
typename FType = typename std::remove_reference<TValue>::type>
class PropertySetter : public PropertySetterBase { … };
template <typename TClass, typename TValue>
class ClassPropertyValueSetter : public PropertySetterBase { … };
template <typename TClass, typename TValue>
class ClassPropertyMoveSetter : public PropertySetterBase { … };
template <typename TClass, typename TValue>
class ClassPropertyUniquePtrSetter : public PropertySetterBase { … };
template <typename TClass, typename TSig, TSig Set, typename... Args>
class ClassMethodCaller : public PropertySetterBase { … };
class VIEWS_EXPORT ViewBuilderCore { … };
template <typename TClass, typename TValue, typename TSig, TSig Set>
class ViewBuilderSetter : public PropertySetterBase { … };
}
}
#endif