{% macro dictionary_setter_impl(member) %}
void {{cpp_class}}::{{member.setter_name}}({{member.rvalue_cpp_type}} value) {
  {{member.cpp_name}}_ = {{member.setter_value}};
  {% if member.nullable_indicator_name %}
  {{member.nullable_indicator_name}} = true;
  {% endif %}
}
{% if member.null_setter_name %}
void {{cpp_class}}::{{member.null_setter_name}}() {
  {% if member.nullable_indicator_name %}
  {{member.nullable_indicator_name}} = false;
  {% else %}
  {{member.cpp_name}}_ = {{member.member_cpp_type}}();
  {% endif %}
}
{% endif %}
{%- endmacro %}
