1

有谁知道 Sourcery 中是否有办法获取对泛型继承的类型的引用?我假设这个问题没有立即意义,所以这里有一些我正在尝试做的代码:

假设我在 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”部分是我试图弄清楚如何做的。感谢您的任何帮助!

4

0 回答 0