Итерации по обобщенным c типам в шаблоне Sourcery / Swift-Stencil - PullRequest
0 голосов
/ 04 февраля 2020

Кто-нибудь знает, есть ли способ в Sourcery получить ссылку на тип, от которого наследуется c? Я предполагаю, что этот вопрос не имеет непосредственного смысла, поэтому вот код для того, что я пытаюсь сделать:

Скажем, у меня в Swift есть следующее:

public protocol GenericProtocol { }

public enum GenericType1: GenericProtocol { }

public enum GenericType2: GenericProtocol { }

public protocol RandomProtocol { }

public struct RandomStruct<T: GenericProtocol>: RandomProtocol { }

Что Я хочу сделать в Sourcery что-то вроде этого:

{% for type in types.based.RandomProtocol %}
    {% if type.isGeneric %}
        {% for genericType in types based on the protocol that this generic type inherits from %}
            {{ type.name }}<{{ genericType.name }}>
        {% endfor %}
    {% endif %}
{% endfor %}

Так что это закончится печать:

RandomStruct<GenericType1>
RandomStruct<GenericType2>

"для genericType в типах на основе протокола, который этот родовой c тип наследует от "части" - вот что я пытаюсь выяснить, как это сделать. Спасибо за любую помощь!

...