{% from "macros.tmpl" import wrap_with_condition, license -%}
{{ license() }}

#ifndef StyleBuilderFunctions_h
#define StyleBuilderFunctions_h

#include "core/css/resolver/StyleBuilderCustom.h"

namespace WebCore {

class CSSValue;
class StyleResolverState;

class StyleBuilderFunctions {
public:

{%- for property_id, property in properties.items() if not property.use_handlers_for %}
{% call wrap_with_condition(property.condition) %}
    static void applyInitial{{property_id}}(StyleResolverState&);
    static void applyInherit{{property_id}}(StyleResolverState&);
    static void applyValue{{property_id}}(StyleResolverState&, CSSValue*);
{%- endcall %}
{%- endfor %}

};

} // namespace WebCore

#endif
