-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathISetupable.cs
188 lines (179 loc) · 9.49 KB
/
ISetupable.cs
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
// Copyright (c) 2023 Vladimir Popov zor1994@gmail.com https://github.com/ZorPastaman/UtilityAI
namespace Zor.UtilityAI.Core
{
/// <summary>
/// Setup interface. It's an equivalent to constructor for <see cref="Consideration"/> or <see cref="Action"/>
/// because they must have only a default constructor.
/// </summary>
/// <typeparam name="TArg">Setup method argument type.</typeparam>
public interface ISetupable<in TArg>
{
/// <summary>
/// Setup method.It's an equivalent to constructor for <see cref="Consideration"/> or <see cref="Action"/>
/// because they must have only a default constructor.
/// </summary>
/// <param name="arg">Setup method argument.</param>
void Setup(TArg arg);
}
/// <summary>
/// Setup interface. It's an equivalent to constructor for <see cref="Consideration"/> or <see cref="Action"/>
/// because they must have only a default constructor.
/// </summary>
/// <typeparam name="TArg0">First setup method argument type.</typeparam>
/// <typeparam name="TArg1">Second setup method argument type.</typeparam>
public interface ISetupable<in TArg0, in TArg1>
{
/// <summary>
/// Setup method. It's an equivalent to constructor for <see cref="Consideration"/> or <see cref="Action"/>
/// because they must have only a default constructor.
/// </summary>
/// <param name="arg0">First setup method argument.</param>
/// <param name="arg1">Second setup method argument.</param>
void Setup(TArg0 arg0, TArg1 arg1);
}
/// <summary>
/// Setup interface. It's an equivalent to constructor for <see cref="Consideration"/> or <see cref="Action"/>
/// because they must have only a default constructor.
/// </summary>
/// <typeparam name="TArg0">First setup method argument type.</typeparam>
/// <typeparam name="TArg1">Second setup method argument type.</typeparam>
/// <typeparam name="TArg2">Third setup method argument type.</typeparam>
public interface ISetupable<in TArg0, in TArg1, in TArg2>
{
/// <summary>
/// Setup method. It's an equivalent to constructor for <see cref="Consideration"/> or <see cref="Action"/>
/// because they must have only a default constructor.
/// </summary>
/// <param name="arg0">First setup method argument.</param>
/// <param name="arg1">Second setup method argument.</param>
/// <param name="arg2">Third setup method argument.</param>
void Setup(TArg0 arg0, TArg1 arg1, TArg2 arg2);
}
/// <summary>
/// Setup interface. It's an equivalent to constructor for <see cref="Consideration"/> or <see cref="Action"/>
/// because they must have only a default constructor.
/// </summary>
/// <typeparam name="TArg0">First setup method argument type.</typeparam>
/// <typeparam name="TArg1">Second setup method argument type.</typeparam>
/// <typeparam name="TArg2">Third setup method argument type.</typeparam>
/// <typeparam name="TArg3">Fourth setup method argument type.</typeparam>
public interface ISetupable<in TArg0, in TArg1, in TArg2, in TArg3>
{
/// <summary>
/// Setup method. It's an equivalent to constructor for <see cref="Consideration"/> or <see cref="Action"/>
/// because they must have only a default constructor.
/// </summary>
/// <param name="arg0">First setup method argument.</param>
/// <param name="arg1">Second setup method argument.</param>
/// <param name="arg2">Third setup method argument.</param>
/// <param name="arg3">Fourth setup method argument.</param>
void Setup(TArg0 arg0, TArg1 arg1, TArg2 arg2, TArg3 arg3);
}
/// <summary>
/// Setup interface. It's an equivalent to constructor for <see cref="Consideration"/> or <see cref="Action"/>
/// because they must have only a default constructor.
/// </summary>
/// <typeparam name="TArg0">First setup method argument type.</typeparam>
/// <typeparam name="TArg1">Second setup method argument type.</typeparam>
/// <typeparam name="TArg2">Third setup method argument type.</typeparam>
/// <typeparam name="TArg3">Fourth setup method argument type.</typeparam>
/// <typeparam name="TArg4">Fifth setup method argument type.</typeparam>
public interface ISetupable<in TArg0, in TArg1, in TArg2, in TArg3, in TArg4>
{
/// <summary>
/// Setup method. It's an equivalent to constructor for <see cref="Consideration"/> or <see cref="Action"/>
/// because they must have only a default constructor.
/// </summary>
/// <param name="arg0">First setup method argument.</param>
/// <param name="arg1">Second setup method argument.</param>
/// <param name="arg2">Third setup method argument.</param>
/// <param name="arg3">Fourth setup method argument.</param>
/// <param name="arg4">Fifth setup method argument.</param>
void Setup(TArg0 arg0, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4);
}
/// <summary>
/// Setup interface. It's an equivalent to constructor for <see cref="Consideration"/> or <see cref="Action"/>
/// because they must have only a default constructor.
/// </summary>
/// <typeparam name="TArg0">First setup method argument type.</typeparam>
/// <typeparam name="TArg1">Second setup method argument type.</typeparam>
/// <typeparam name="TArg2">Third setup method argument type.</typeparam>
/// <typeparam name="TArg3">Fourth setup method argument type.</typeparam>
/// <typeparam name="TArg4">Fifth setup method argument type.</typeparam>
/// <typeparam name="TArg5">Sixth setup method argument type.</typeparam>
public interface ISetupable<in TArg0, in TArg1, in TArg2, in TArg3, in TArg4, in TArg5>
{
/// <summary>
/// Setup method. It's an equivalent to constructor for <see cref="Consideration"/> or <see cref="Action"/>
/// because they must have only a default constructor.
/// </summary>
/// <param name="arg0">First setup method argument.</param>
/// <param name="arg1">Second setup method argument.</param>
/// <param name="arg2">Third setup method argument.</param>
/// <param name="arg3">Fourth setup method argument.</param>
/// <param name="arg4">Fifth setup method argument.</param>
/// <param name="arg5">Sixth setup method argument.</param>
void Setup(TArg0 arg0, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5);
}
/// <summary>
/// Setup interface. It's an equivalent to constructor for <see cref="Consideration"/> or <see cref="Action"/>
/// because they must have only a default constructor.
/// </summary>
/// <typeparam name="TArg0">First setup method argument type.</typeparam>
/// <typeparam name="TArg1">Second setup method argument type.</typeparam>
/// <typeparam name="TArg2">Third setup method argument type.</typeparam>
/// <typeparam name="TArg3">Fourth setup method argument type.</typeparam>
/// <typeparam name="TArg4">Fifth setup method argument type.</typeparam>
/// <typeparam name="TArg5">Sixth setup method argument type.</typeparam>
/// <typeparam name="TArg6">Seventh setup method argument type.</typeparam>
public interface ISetupable<in TArg0, in TArg1, in TArg2, in TArg3, in TArg4, in TArg5, in TArg6>
{
/// <summary>
/// Setup method. It's an equivalent to constructor for <see cref="Consideration"/> or <see cref="Action"/>
/// because they must have only a default constructor.
/// </summary>
/// <param name="arg0">First setup method argument.</param>
/// <param name="arg1">Second setup method argument.</param>
/// <param name="arg2">Third setup method argument.</param>
/// <param name="arg3">Fourth setup method argument.</param>
/// <param name="arg4">Fifth setup method argument.</param>
/// <param name="arg5">Sixth setup method argument.</param>
/// <param name="arg6">Seventh setup method argument.</param>
void Setup(TArg0 arg0, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6);
}
/// <summary>
/// Setup interface. It's an equivalent to constructor for <see cref="Consideration"/> or <see cref="Action"/>
/// because they must have only a default constructor.
/// </summary>
/// <typeparam name="TArg0">First setup method argument type.</typeparam>
/// <typeparam name="TArg1">Second setup method argument type.</typeparam>
/// <typeparam name="TArg2">Third setup method argument type.</typeparam>
/// <typeparam name="TArg3">Fourth setup method argument type.</typeparam>
/// <typeparam name="TArg4">Fifth setup method argument type.</typeparam>
/// <typeparam name="TArg5">Sixth setup method argument type.</typeparam>
/// <typeparam name="TArg6">Seventh setup method argument type.</typeparam>
/// <typeparam name="TArg7">Eighth setup method argument type.</typeparam>
public interface ISetupable<in TArg0, in TArg1, in TArg2, in TArg3, in TArg4, in TArg5, in TArg6, in TArg7>
{
/// <summary>
/// Setup method. It's an equivalent to constructor for <see cref="Consideration"/> or <see cref="Action"/>
/// because they must have only a default constructor.
/// </summary>
/// <param name="arg0">First setup method argument.</param>
/// <param name="arg1">Second setup method argument.</param>
/// <param name="arg2">Third setup method argument.</param>
/// <param name="arg3">Fourth setup method argument.</param>
/// <param name="arg4">Fifth setup method argument.</param>
/// <param name="arg5">Sixth setup method argument.</param>
/// <param name="arg6">Seventh setup method argument.</param>
/// <param name="arg7">Eighth setup method argument.</param>
void Setup(TArg0 arg0, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6, TArg7 arg7);
}
/// <summary>
/// Setup interface without arguments. It's an equivalent to constructor for
/// <see cref="Consideration"/> or <see cref="Action"/> because they must have only a default constructor.
/// </summary>
public interface INotSetupable
{
}
}