Skip to content

Commit f4209da

Browse files
Added PluginListInterface File
1 parent 0224025 commit f4209da

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
//{{ file_header }}
2+
{% if plugin_list_interface_imports %}
3+
4+
{% for import in plugin_list_interface_imports %}
5+
import {{ import }}
6+
{% endfor %}
7+
{% endif %}
8+
9+
// This file defines the protocols and types in the PluginList interface requiring public ACL for use in another module.
10+
11+
/// Declares the type of key used to identify plugins within the collection.
12+
/// - NOTE: May be any ``Hashable`` type such as ``String`` or an enumeration.
13+
internal typealias {{ plugin_list_name }}PluginListKeyType = String
14+
15+
/// Dynamic state from the caller provided to the plugins to use in determining whether they are enabled.
16+
/// - NOTE: An alias to a tuple is supported.
17+
internal typealias {{ plugin_list_name }}PluginListStateType = Void
18+
19+
{% if is_periphery_comment_enabled %}
20+
// periphery:ignore
21+
{% endif %}
22+
/// @mockable
23+
@MainActor
24+
internal protocol {{ plugin_list_name }}PluginList {
25+
func createAll() -> [{{ plugin_list_name }}Builder]
26+
func create() -> {{ plugin_list_name }}Builder?
27+
func create(key: {{ plugin_list_name }}PluginListKeyType) -> {{ plugin_list_name }}Builder?
28+
}

0 commit comments

Comments
 (0)