{% import 'templates/fields/base.tmpl' as base %}
{% from 'templates/fields/field.tmpl' import getter_expression, setter_expression %}
{% macro decl_public_methods(field) %}
{{base.decl_public_getter_method(field)}}
{{base.decl_public_setter_method(field)}}
{{base.decl_public_move_method(field)}}
{{base.decl_public_resetter_method(field)}}
{% endmacro %}
{% macro decl_protected_methods(field) -%}
{{base.decl_protected_getter_method(field)}}
{% if not field.wrapper_pointer_name %}
{{base.decl_protected_setter_method(field)}}
{% endif %}
{{base.decl_protected_move_method(field)}}
{{base.decl_protected_resetter_method(field)}}
{{base.decl_protected_mutable_method(field)}}
{%- endmacro %}