interface in types.protocols where interface.name|hasSuffix:"UseCase" %} {% for implement in types.all where implement.name|hasPrefix:interface.name %} container.register({{ interface.name }}.self) { r in {{ implement.name }}( {% for parameter in implement.initializers.first.parameters %} {{ parameter.name }}: r.resolve({{ parameter.typeName }}.self)! {% endfor %} ) } {% endfor %} {% endfor %} } }