Skip to content

Commit d21e87b

Browse files
committed
feat: Added Match method for AnyOf/OneOfs.
1 parent 57510e7 commit d21e87b

File tree

235 files changed

+14088
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

235 files changed

+14088
-0
lines changed

src/libs/AutoSDK/Sources/Sources.AnyOf.cs

+40
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,46 @@ public bool Validate()
104104
return {validation};
105105
}}
106106
107+
{string.Empty.ToXmlDocumentationSummary(level: 8)}
108+
public TResult? Match<TResult>(
109+
{allTypes.Select(x => $@"
110+
global::System.Func<{x.Type.CSharpType}, TResult>? {x.ParameterName} = null,
111+
").Inject()}
112+
bool validate = true)
113+
{{
114+
if (validate)
115+
{{
116+
Validate();
117+
}}
118+
119+
{allTypes.Select((x, i) => $@"
120+
{(i > 0 ? "else " : "")}if (Is{x.Name} && {x.ParameterName} != null)
121+
{{
122+
return {x.ParameterName}({x.Name}!);
123+
}}").Inject()}
124+
125+
return default(TResult);
126+
}}
127+
128+
{string.Empty.ToXmlDocumentationSummary(level: 8)}
129+
public void Match(
130+
{allTypes.Select(x => $@"
131+
global::System.Action<{x.Type.CSharpType}>? {x.ParameterName} = null,
132+
").Inject()}
133+
bool validate = true)
134+
{{
135+
if (validate)
136+
{{
137+
Validate();
138+
}}
139+
140+
{allTypes.Select((x, i) => $@"
141+
{(i > 0 ? "else " : "")}if (Is{x.Name})
142+
{{
143+
{x.ParameterName}?.Invoke({x.Name}!);
144+
}}").Inject()}
145+
}}
146+
107147
{string.Empty.ToXmlDocumentationSummary(level: 8)}
108148
public override int GetHashCode()
109149
{{

src/tests/AutoSDK.SnapshotTests/Snapshots/Ai21/NewtonsoftJson/_#AnyOf.2.g.verified.cs

+48
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,54 @@ public bool Validate()
108108
return IsValue1 || IsValue2;
109109
}
110110

111+
/// <summary>
112+
///
113+
/// </summary>
114+
public TResult? Match<TResult>(
115+
global::System.Func<T1, TResult>? value1 = null,
116+
global::System.Func<T2, TResult>? value2 = null,
117+
bool validate = true)
118+
{
119+
if (validate)
120+
{
121+
Validate();
122+
}
123+
124+
if (IsValue1 && value1 != null)
125+
{
126+
return value1(Value1!);
127+
}
128+
else if (IsValue2 && value2 != null)
129+
{
130+
return value2(Value2!);
131+
}
132+
133+
return default(TResult);
134+
}
135+
136+
/// <summary>
137+
///
138+
/// </summary>
139+
public void Match(
140+
global::System.Action<T1>? value1 = null,
141+
global::System.Action<T2>? value2 = null,
142+
bool validate = true)
143+
{
144+
if (validate)
145+
{
146+
Validate();
147+
}
148+
149+
if (IsValue1)
150+
{
151+
value1?.Invoke(Value1!);
152+
}
153+
else if (IsValue2)
154+
{
155+
value2?.Invoke(Value2!);
156+
}
157+
}
158+
111159
/// <summary>
112160
///
113161
/// </summary>

src/tests/AutoSDK.SnapshotTests/Snapshots/Ai21/NewtonsoftJson/_#OneOf.4.g.verified.cs

+68
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,74 @@ public bool Validate()
184184
return IsValue1 && !IsValue2 && !IsValue3 && !IsValue4 || !IsValue1 && IsValue2 && !IsValue3 && !IsValue4 || !IsValue1 && !IsValue2 && IsValue3 && !IsValue4 || !IsValue1 && !IsValue2 && !IsValue3 && IsValue4;
185185
}
186186

187+
/// <summary>
188+
///
189+
/// </summary>
190+
public TResult? Match<TResult>(
191+
global::System.Func<T1, TResult>? value1 = null,
192+
global::System.Func<T2, TResult>? value2 = null,
193+
global::System.Func<T3, TResult>? value3 = null,
194+
global::System.Func<T4, TResult>? value4 = null,
195+
bool validate = true)
196+
{
197+
if (validate)
198+
{
199+
Validate();
200+
}
201+
202+
if (IsValue1 && value1 != null)
203+
{
204+
return value1(Value1!);
205+
}
206+
else if (IsValue2 && value2 != null)
207+
{
208+
return value2(Value2!);
209+
}
210+
else if (IsValue3 && value3 != null)
211+
{
212+
return value3(Value3!);
213+
}
214+
else if (IsValue4 && value4 != null)
215+
{
216+
return value4(Value4!);
217+
}
218+
219+
return default(TResult);
220+
}
221+
222+
/// <summary>
223+
///
224+
/// </summary>
225+
public void Match(
226+
global::System.Action<T1>? value1 = null,
227+
global::System.Action<T2>? value2 = null,
228+
global::System.Action<T3>? value3 = null,
229+
global::System.Action<T4>? value4 = null,
230+
bool validate = true)
231+
{
232+
if (validate)
233+
{
234+
Validate();
235+
}
236+
237+
if (IsValue1)
238+
{
239+
value1?.Invoke(Value1!);
240+
}
241+
else if (IsValue2)
242+
{
243+
value2?.Invoke(Value2!);
244+
}
245+
else if (IsValue3)
246+
{
247+
value3?.Invoke(Value3!);
248+
}
249+
else if (IsValue4)
250+
{
251+
value4?.Invoke(Value4!);
252+
}
253+
}
254+
187255
/// <summary>
188256
///
189257
/// </summary>

src/tests/AutoSDK.SnapshotTests/Snapshots/Ai21/SystemTextJson/_#AnyOf.2.g.verified.cs

+48
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,54 @@ public bool Validate()
108108
return IsValue1 || IsValue2;
109109
}
110110

111+
/// <summary>
112+
///
113+
/// </summary>
114+
public TResult? Match<TResult>(
115+
global::System.Func<T1, TResult>? value1 = null,
116+
global::System.Func<T2, TResult>? value2 = null,
117+
bool validate = true)
118+
{
119+
if (validate)
120+
{
121+
Validate();
122+
}
123+
124+
if (IsValue1 && value1 != null)
125+
{
126+
return value1(Value1!);
127+
}
128+
else if (IsValue2 && value2 != null)
129+
{
130+
return value2(Value2!);
131+
}
132+
133+
return default(TResult);
134+
}
135+
136+
/// <summary>
137+
///
138+
/// </summary>
139+
public void Match(
140+
global::System.Action<T1>? value1 = null,
141+
global::System.Action<T2>? value2 = null,
142+
bool validate = true)
143+
{
144+
if (validate)
145+
{
146+
Validate();
147+
}
148+
149+
if (IsValue1)
150+
{
151+
value1?.Invoke(Value1!);
152+
}
153+
else if (IsValue2)
154+
{
155+
value2?.Invoke(Value2!);
156+
}
157+
}
158+
111159
/// <summary>
112160
///
113161
/// </summary>

src/tests/AutoSDK.SnapshotTests/Snapshots/Ai21/SystemTextJson/_#OneOf.4.g.verified.cs

+68
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,74 @@ public bool Validate()
184184
return IsValue1 && !IsValue2 && !IsValue3 && !IsValue4 || !IsValue1 && IsValue2 && !IsValue3 && !IsValue4 || !IsValue1 && !IsValue2 && IsValue3 && !IsValue4 || !IsValue1 && !IsValue2 && !IsValue3 && IsValue4;
185185
}
186186

187+
/// <summary>
188+
///
189+
/// </summary>
190+
public TResult? Match<TResult>(
191+
global::System.Func<T1, TResult>? value1 = null,
192+
global::System.Func<T2, TResult>? value2 = null,
193+
global::System.Func<T3, TResult>? value3 = null,
194+
global::System.Func<T4, TResult>? value4 = null,
195+
bool validate = true)
196+
{
197+
if (validate)
198+
{
199+
Validate();
200+
}
201+
202+
if (IsValue1 && value1 != null)
203+
{
204+
return value1(Value1!);
205+
}
206+
else if (IsValue2 && value2 != null)
207+
{
208+
return value2(Value2!);
209+
}
210+
else if (IsValue3 && value3 != null)
211+
{
212+
return value3(Value3!);
213+
}
214+
else if (IsValue4 && value4 != null)
215+
{
216+
return value4(Value4!);
217+
}
218+
219+
return default(TResult);
220+
}
221+
222+
/// <summary>
223+
///
224+
/// </summary>
225+
public void Match(
226+
global::System.Action<T1>? value1 = null,
227+
global::System.Action<T2>? value2 = null,
228+
global::System.Action<T3>? value3 = null,
229+
global::System.Action<T4>? value4 = null,
230+
bool validate = true)
231+
{
232+
if (validate)
233+
{
234+
Validate();
235+
}
236+
237+
if (IsValue1)
238+
{
239+
value1?.Invoke(Value1!);
240+
}
241+
else if (IsValue2)
242+
{
243+
value2?.Invoke(Value2!);
244+
}
245+
else if (IsValue3)
246+
{
247+
value3?.Invoke(Value3!);
248+
}
249+
else if (IsValue4)
250+
{
251+
value4?.Invoke(Value4!);
252+
}
253+
}
254+
187255
/// <summary>
188256
///
189257
/// </summary>

src/tests/AutoSDK.SnapshotTests/Snapshots/Anthropic/NewtonsoftJson/_#AnyOf.2.g.verified.cs

+48
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,54 @@ public bool Validate()
108108
return IsValue1 || IsValue2;
109109
}
110110

111+
/// <summary>
112+
///
113+
/// </summary>
114+
public TResult? Match<TResult>(
115+
global::System.Func<T1, TResult>? value1 = null,
116+
global::System.Func<T2, TResult>? value2 = null,
117+
bool validate = true)
118+
{
119+
if (validate)
120+
{
121+
Validate();
122+
}
123+
124+
if (IsValue1 && value1 != null)
125+
{
126+
return value1(Value1!);
127+
}
128+
else if (IsValue2 && value2 != null)
129+
{
130+
return value2(Value2!);
131+
}
132+
133+
return default(TResult);
134+
}
135+
136+
/// <summary>
137+
///
138+
/// </summary>
139+
public void Match(
140+
global::System.Action<T1>? value1 = null,
141+
global::System.Action<T2>? value2 = null,
142+
bool validate = true)
143+
{
144+
if (validate)
145+
{
146+
Validate();
147+
}
148+
149+
if (IsValue1)
150+
{
151+
value1?.Invoke(Value1!);
152+
}
153+
else if (IsValue2)
154+
{
155+
value2?.Invoke(Value2!);
156+
}
157+
}
158+
111159
/// <summary>
112160
///
113161
/// </summary>

0 commit comments

Comments
 (0)