{% macro typeParameters(parameters, withConstraint) %} {%- import '../macroses/common.utils.twig' as utils -%} {%- if parameters is not empty -%} < {%- for typeParameter in parameters %} {{- utils.formatValueType(typeParameter) -}}{{- withConstraint ? ": Codable" : ""-}}{%- if not (loop.last) %}, {% endif %} {%- endfor -%} > {%- endif -%} {% endmacro %} {% macro classType(type) %} {%- import _self as self -%} {{- type.baseTypeName -}}{{- self.typeParameters(type.typeParameters, true) -}} {% endmacro %} {% macro parentClassType(parent, parentTypeParameters) %} {%- import _self as self -%} {%- if parent is not null %} {{- parent.type.baseTypeName -}} {%- else -%} Codable {%- endif -%} {{- self.typeParameters(parentTypeParameters, false) -}} {% endmacro %}