-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathPluginListInterface.stencil
More file actions
30 lines (25 loc) · 1.06 KB
/
PluginListInterface.stencil
File metadata and controls
30 lines (25 loc) · 1.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//{{ file_header }}
{% if plugin_list_interface_imports %}
{% for import in plugin_list_interface_imports %}
import {{ import }}
{% endfor %}
{% endif %}
/*
This file contains the protocols and types of the plugin list interface requiring public ACL for use in another module.
*/
/// Declares the type of key used to identify plugins within the collection.
/// - NOTE: May be any ``Hashable`` type such as ``String`` or an enumeration.
internal typealias {{ plugin_list_name }}PluginListKeyType = String
/// Dynamic state from the caller provided to the plugins to use in determining whether they are enabled.
/// - NOTE: An alias to a tuple is supported.
internal typealias {{ plugin_list_name }}PluginListStateType = Void
{% if is_periphery_comment_enabled %}
// periphery:ignore
{% endif %}
/// @mockable
@MainActor
internal protocol {{ plugin_list_name }}PluginList {
func createAll() -> [{{ plugin_list_name }}Builder]
func create() -> {{ plugin_list_name }}Builder?
func create(key: {{ plugin_list_name }}PluginListKeyType) -> {{ plugin_list_name }}Builder?
}