533 references to AtsTypeCategory
aspire-managed (1)
AppHostServerV2CodeGeneration.cs (1)
114
if (type.Category ==
AtsTypeCategory
.Handle)
Aspire.Hosting.CodeGeneration.Go (37)
AtsGoCodeGenerator.ApiProjection.cs (2)
724
var returnsHandle = hasReturn && returnType!.Category ==
AtsTypeCategory
.Handle;
1116
if (typeRef.Category ==
AtsTypeCategory
.Handle && typeRef.ClrType is { } clrType)
AtsGoCodeGenerator.cs (34)
452
if (typeRef.Category ==
AtsTypeCategory
.Handle)
987
AtsTypeCategory
.Primitive => RenderGoJsonValue(value),
988
AtsTypeCategory
.Enum => $"{MapEnumType(typeRef.TypeId)}({RenderGoJsonValue(value)})",
989
AtsTypeCategory
.Dto when value is JsonObject obj && dtoTypesById.TryGetValue(typeRef.TypeId, out var dtoInfo)
991
AtsTypeCategory
.Array or
AtsTypeCategory
.List when value is JsonArray arr
993
AtsTypeCategory
.Dict when value is JsonObject obj
1003
var valueType = typeRef.Category ==
AtsTypeCategory
.Primitive
1241
if (capability.ReturnType.Category !=
AtsTypeCategory
.List
1242
&& capability.ReturnType.Category !=
AtsTypeCategory
.Dict)
1609
if (returnType.Category !=
AtsTypeCategory
.Handle)
1822
if (p.Type?.Category !=
AtsTypeCategory
.Handle) { continue; }
2009
else if (p.CallbackParameters is { Count: > 0 } callbackParameters && callbackParameters.Any(cp => cp.Type.Category ==
AtsTypeCategory
.Dto))
2023
if (callbackParameters[i].Type.Category ==
AtsTypeCategory
.Dto)
2047
&& type.Category ==
AtsTypeCategory
.Handle
2078
if (returnType.Category ==
AtsTypeCategory
.Dict)
2284
if (p.Type?.Category ==
AtsTypeCategory
.Union)
2388
if (hasReturn && capability.ReturnType!.Category ==
AtsTypeCategory
.Handle)
2611
AtsTypeCategory
.Primitive => MapPrimitiveType(typeRef.TypeId),
2612
AtsTypeCategory
.Enum => MapEnumType(typeRef.TypeId),
2613
AtsTypeCategory
.Handle => MapHandleType(typeRef.TypeId, asInput),
2614
AtsTypeCategory
.Dto => "*" + MapDtoType(typeRef.TypeId),
2615
AtsTypeCategory
.Callback => "func(...any) any",
2616
AtsTypeCategory
.Array => $"[]{MapTypeRefToGo(typeRef.ElementType, false, asInput)}",
2617
AtsTypeCategory
.List => typeRef.IsReadOnly
2620
AtsTypeCategory
.Dict => typeRef.IsReadOnly
2623
AtsTypeCategory
.Union => "any",
2624
AtsTypeCategory
.Unknown => "any",
2649
AtsTypeCategory
.Array or
AtsTypeCategory
.List => $"[]{MapDtoPropertyTypeToGo(typeRef.ElementType, false)}",
2650
AtsTypeCategory
.Dict => $"map[{MapDtoPropertyTypeToGo(typeRef.KeyType, false)}]{MapDtoPropertyTypeToGo(typeRef.ValueType, false)}",
2651
AtsTypeCategory
.Union => "any",
2675
&& typeRef.Category is
AtsTypeCategory
.Primitive or
AtsTypeCategory
.Enum
src\Shared\CodeGeneration\AtsOptionsFlattening.cs (1)
54
if (candidate.Type?.Category !=
AtsTypeCategory
.Dto)
Aspire.Hosting.CodeGeneration.Go.Tests (24)
AtsGoDerivedBuilderTests.cs (10)
489
private static readonly AtsTypeRef s_builder = new() { TypeId = AtsConstants.BuilderTypeId, Category =
AtsTypeCategory
.Handle, IsInterface = true };
496
private static readonly AtsTypeRef s_string = new() { TypeId = AtsConstants.String, Category =
AtsTypeCategory
.Primitive };
497
private static readonly AtsTypeRef s_poolSettings = new() { TypeId = PoolSettingsId, Category =
AtsTypeCategory
.Dto };
614
private static AtsTypeRef Handle(string typeId) => new() { TypeId = typeId, Category =
AtsTypeCategory
.Handle };
619
Category =
AtsTypeCategory
.Array,
627
Category =
AtsTypeCategory
.List,
634
Category =
AtsTypeCategory
.Dict,
643
Category =
AtsTypeCategory
.Union,
654
Type = new AtsTypeRef { TypeId = "callback", Category =
AtsTypeCategory
.Callback },
657
CallbackReturnType = new AtsTypeRef { TypeId = AtsConstants.Void, Category =
AtsTypeCategory
.Primitive }
GoDocCommentTests.cs (6)
361
var resourceType = new AtsTypeRef { TypeId = ResourceTypeId, Category =
AtsTypeCategory
.Handle };
362
var settingsType = new AtsTypeRef { TypeId = SettingsTypeId, Category =
AtsTypeCategory
.Dto };
363
var statusType = new AtsTypeRef { TypeId = StatusTypeId, Category =
AtsTypeCategory
.Enum };
364
var tagsType = new AtsTypeRef { TypeId = "Tests/List<string>", Category =
AtsTypeCategory
.List, ElementType = stringType };
475
private static AtsTypeRef Primitive(string typeId) => new() { TypeId = typeId, Category =
AtsTypeCategory
.Primitive };
496
var resourceType = new AtsTypeRef { TypeId = ResourceTypeId, Category =
AtsTypeCategory
.Handle };
GoGeneratorEscapingTests.cs (8)
95
var tagsType = new AtsTypeRef { TypeId = "Tests/List<string>", Category =
AtsTypeCategory
.List, ElementType = stringType };
96
var unionType = new AtsTypeRef { TypeId = "Tests/Union", Category =
AtsTypeCategory
.Union, UnionTypes = [stringType, numberType] };
97
var callbackType = new AtsTypeRef { TypeId = "Tests/Callback", Category =
AtsTypeCategory
.Callback };
98
var enumType = new AtsTypeRef { TypeId = StatusTypeId, Category =
AtsTypeCategory
.Enum };
99
var lookupType = new AtsTypeRef { TypeId = "Tests/Dict<string,string>", Category =
AtsTypeCategory
.Dict, KeyType = stringType, ValueType = stringType, IsReadOnly = true };
100
var unknownType = new AtsTypeRef { TypeId = "Tests/Unknown", Category =
AtsTypeCategory
.Unknown };
197
private static AtsTypeRef Primitive(string typeId) => new() { TypeId = typeId, Category =
AtsTypeCategory
.Primitive };
199
private static AtsTypeRef Handle(string typeId) => new() { TypeId = typeId, Category =
AtsTypeCategory
.Handle };
Aspire.Hosting.CodeGeneration.Java (41)
AtsJavaCodeGenerator.cs (41)
879
AtsTypeCategory
.Primitive => value.ToRelaxedJsonString(),
880
AtsTypeCategory
.Enum => $"{MapTypeRefToJava(typeRef, false)}.fromValue({value.ToRelaxedJsonString()})",
881
AtsTypeCategory
.Dto when value is JsonObject obj && dtoTypesById.TryGetValue(typeRef.TypeId, out var dtoInfo)
883
AtsTypeCategory
.Array when value is JsonArray arr
885
AtsTypeCategory
.List when value is JsonArray arr
887
AtsTypeCategory
.Dict when value is JsonObject obj
1139
if (parameter.IsCallback || parameter.Type?.Category !=
AtsTypeCategory
.Handle)
2063
AtsTypeCategory
.Primitive => RenderJavaPrimitiveTransportValueConversion(typeRef.TypeId, valueExpression, allowNull),
2064
AtsTypeCategory
.Enum => RenderJavaEnumTransportValueConversion(typeRef.TypeId, valueExpression, allowNull),
2065
AtsTypeCategory
.Dto => RenderJavaDtoTransportValueConversion(typeRef.TypeId, valueExpression, allowNull),
2066
AtsTypeCategory
.Handle => $"({MapTypeRefToJava(typeRef, allowNull)}) {valueExpression}",
2067
AtsTypeCategory
.Array => RenderJavaArrayTransportValueConversion(typeRef, valueExpression, allowNull, depth),
2068
AtsTypeCategory
.List => RenderJavaListTransportValueConversion(typeRef, valueExpression, allowNull, depth),
2069
AtsTypeCategory
.Dict => $"({MapTypeRefToJava(typeRef, allowNull, useBoxedTypes: true)}) {valueExpression}",
2070
AtsTypeCategory
.Union => $"AspireUnion.of({valueExpression})",
2102
if (typeRef?.Category is not (
AtsTypeCategory
.Dict or
AtsTypeCategory
.Array or
AtsTypeCategory
.List))
2109
if (typeRef.Category ==
AtsTypeCategory
.List)
2125
if (typeRef.Category ==
AtsTypeCategory
.Array)
2251
return returnType.Category ==
AtsTypeCategory
.List || returnType.Category ==
AtsTypeCategory
.Dict;
2257
var isDict = returnType.Category ==
AtsTypeCategory
.Dict;
2576
AtsTypeCategory
.Primitive => MapPrimitiveType(typeRef.TypeId, isOptional || useBoxedTypes),
2577
AtsTypeCategory
.Enum => MapEnumType(typeRef.TypeId),
2578
AtsTypeCategory
.Handle => MapHandleType(typeRef.TypeId),
2579
AtsTypeCategory
.Dto => MapDtoType(typeRef.TypeId),
2580
AtsTypeCategory
.Callback => "Object",
2581
AtsTypeCategory
.Array => $"{MapTypeRefToJava(typeRef.ElementType, typeRef.ElementType?.IsNullable == true)}[]",
2582
AtsTypeCategory
.List => typeRef.IsReadOnly
2585
AtsTypeCategory
.Dict => typeRef.IsReadOnly
2588
AtsTypeCategory
.Union => "AspireUnion",
2589
AtsTypeCategory
.Unknown => "Object",
2608
AtsTypeCategory
.Array => $"{MapDtoPropertyTypeToJava(typeRef.ElementType, typeRef.ElementType?.IsNullable == true)}[]",
2609
AtsTypeCategory
.List => $"List<{MapDtoPropertyTypeToJava(typeRef.ElementType, false, useBoxedTypes: true)}>",
2610
AtsTypeCategory
.Dict => $"Map<{MapDtoPropertyTypeToJava(typeRef.KeyType, false, useBoxedTypes: true)}, {MapDtoPropertyTypeToJava(typeRef.ValueType, false, useBoxedTypes: true)}>",
2611
AtsTypeCategory
.Union => "AspireUnion",
2680
private static bool IsUnionType(AtsTypeRef? typeRef) => typeRef?.Category ==
AtsTypeCategory
.Union;
2703
if (typeRef.Category ==
AtsTypeCategory
.Handle)
2716
if (typeRef.Category ==
AtsTypeCategory
.List)
2723
else if (typeRef.Category ==
AtsTypeCategory
.Dict)
Aspire.Hosting.CodeGeneration.Java.Tests (44)
AtsJavaCodeGeneratorTests.cs (44)
2698
new AtsTypeRef { TypeId = "array", Category =
AtsTypeCategory
.Array, ElementType = MutableStringDict() });
2714
Category =
AtsTypeCategory
.List,
2728
var stringType = new AtsTypeRef { TypeId = "string", Category =
AtsTypeCategory
.Primitive };
2729
var innerArray = new AtsTypeRef { TypeId = "array", Category =
AtsTypeCategory
.Array, ElementType = stringType };
2732
new AtsTypeRef { TypeId = "array", Category =
AtsTypeCategory
.Array, ElementType = innerArray });
2775
var resourceType = new AtsTypeRef { TypeId = "Tests/ProbeResource", Category =
AtsTypeCategory
.Handle };
2776
var stringType = new AtsTypeRef { TypeId = AtsConstants.String, Category =
AtsTypeCategory
.Primitive };
2777
var innerArray = new AtsTypeRef { TypeId = "array", Category =
AtsTypeCategory
.Array, ElementType = stringType };
2778
var matrixType = new AtsTypeRef { TypeId = "array", Category =
AtsTypeCategory
.Array, ElementType = innerArray };
2783
Type = new AtsTypeRef { TypeId = "callback", Category =
AtsTypeCategory
.Callback },
2785
CallbackReturnType = new AtsTypeRef { TypeId = AtsConstants.Void, Category =
AtsTypeCategory
.Primitive }
2792
ReturnType = new AtsTypeRef { TypeId = AtsConstants.Void, Category =
AtsTypeCategory
.Primitive },
2813
var resourceType = new AtsTypeRef { TypeId = "Tests/ProbeResource", Category =
AtsTypeCategory
.Handle };
2817
Type = new AtsTypeRef { TypeId = AtsConstants.CancellationToken, Category =
AtsTypeCategory
.Dto }
2824
ReturnType = new AtsTypeRef { TypeId = AtsConstants.Void, Category =
AtsTypeCategory
.Primitive },
2841
var resourceType = new AtsTypeRef { TypeId = "Tests/ProbeResource", Category =
AtsTypeCategory
.Handle };
2860
Category =
AtsTypeCategory
.Primitive,
2888
Category =
AtsTypeCategory
.Handle
2895
new AtsTypeRef { TypeId = AtsConstants.Boolean, Category =
AtsTypeCategory
.Primitive, IsNullable = true }),
2899
new AtsTypeRef { TypeId = AtsConstants.Number, Category =
AtsTypeCategory
.Primitive, IsNullable = true }),
3025
var resourceType = new AtsTypeRef { TypeId = "Tests/ProbeResource", Category =
AtsTypeCategory
.Handle };
3029
Category =
AtsTypeCategory
.Primitive,
3035
Category =
AtsTypeCategory
.Primitive,
3041
Category =
AtsTypeCategory
.Array,
3047
Category =
AtsTypeCategory
.Array,
3053
Category =
AtsTypeCategory
.Array,
3060
Type = new AtsTypeRef { TypeId = "callback", Category =
AtsTypeCategory
.Callback },
3066
CallbackReturnType = new AtsTypeRef { TypeId = AtsConstants.Void, Category =
AtsTypeCategory
.Primitive }
3073
ReturnType = new AtsTypeRef { TypeId = AtsConstants.Void, Category =
AtsTypeCategory
.Primitive },
3315
var contextType = new AtsTypeRef { TypeId = "Tests/MutableContext", Category =
AtsTypeCategory
.Dto };
3331
Type = new AtsTypeRef { TypeId = AtsConstants.String, Category =
AtsTypeCategory
.Primitive }
3344
Type = new AtsTypeRef { TypeId = "callback", Category =
AtsTypeCategory
.Callback },
3353
Category =
AtsTypeCategory
.Primitive
3406
var resourceType = new AtsTypeRef { TypeId = "Tests/ProbeResource", Category =
AtsTypeCategory
.Handle };
3407
var contextType = new AtsTypeRef { TypeId = "Tests/MutableContext", Category =
AtsTypeCategory
.Dto };
3412
Type = new AtsTypeRef { TypeId = "callback", Category =
AtsTypeCategory
.Callback },
3417
CallbackReturnType = new AtsTypeRef { TypeId = AtsConstants.Void, Category =
AtsTypeCategory
.Primitive }
3424
ReturnType = new AtsTypeRef { TypeId = AtsConstants.Void, Category =
AtsTypeCategory
.Primitive },
3446
Type = new AtsTypeRef { TypeId = AtsConstants.String, Category =
AtsTypeCategory
.Primitive }
3633
Type = new AtsTypeRef { TypeId = "KeywordProbe", Category =
AtsTypeCategory
.Dto }
3692
new AtsTypeRef { TypeId = "string", Category =
AtsTypeCategory
.Primitive });
3724
Category =
AtsTypeCategory
.Dict,
3726
KeyType = new AtsTypeRef { TypeId = "string", Category =
AtsTypeCategory
.Primitive },
3727
ValueType = new AtsTypeRef { TypeId = "string", Category =
AtsTypeCategory
.Primitive }
Aspire.Hosting.CodeGeneration.Python (32)
AtsPythonCodeGenerator.cs (32)
158
typeRef != null && typeRef.Category ==
AtsTypeCategory
.Handle;
222
AtsTypeCategory
.Primitive => MapPrimitiveType(typeRef.TypeId),
223
AtsTypeCategory
.Enum => MapEnumType(typeRef.TypeId),
224
AtsTypeCategory
.Handle => GetWrapperOrHandleName(typeRef.TypeId),
225
AtsTypeCategory
.Dto => GetDtoClassName(typeRef.TypeId),
226
AtsTypeCategory
.Callback => "typing.Callable", // Callbacks handled separately with full signature
227
AtsTypeCategory
.Array => $"typing.Iterable[{MapTypeRefToPython(typeRef.ElementType)}]",
228
AtsTypeCategory
.List => $"AspireList[{MapTypeRefToPython(typeRef.ElementType)}]",
229
AtsTypeCategory
.Dict => typeRef.IsReadOnly
232
AtsTypeCategory
.Union => MapUnionTypeToPython(typeRef),
233
AtsTypeCategory
.Unknown => "typing.Any", // Unknown types use 'Any' since they're not in the ATS universe
246
&& typeRef.Category is
AtsTypeCategory
.Primitive or
AtsTypeCategory
.Enum
298
parameter.CallbackParameters?.Any(p => p.Type.Category ==
AtsTypeCategory
.Dto && p.Type.TypeId != AtsConstants.CancellationToken) == true
526
if (typeRef.Category ==
AtsTypeCategory
.Union)
533
if (typeRef.Category ==
AtsTypeCategory
.Primitive && typeRef.TypeId == AtsConstants.Void)
605
AtsTypeCategory
.Array or
AtsTypeCategory
.List => $"typing.Iterable[{MapDtoPropertyTypeToPython(typeRef.ElementType)}]",
606
AtsTypeCategory
.Dict => $"typing.Mapping[{MapDtoPropertyTypeToPython(typeRef.KeyType)}, {MapDtoPropertyTypeToPython(typeRef.ValueType)}]",
607
AtsTypeCategory
.Union => MapDtoUnionTypeToPython(typeRef),
1016
AtsTypeCategory
.Dto when value is JsonObject obj && dtoTypesById.TryGetValue(typeRef.TypeId, out var dtoInfo)
1018
AtsTypeCategory
.Array or
AtsTypeCategory
.List when value is JsonArray arr
1020
AtsTypeCategory
.Dict when value is JsonObject obj
1026
if (!topLevel || typeRef.Category is
AtsTypeCategory
.Primitive)
1382
var isResourceBuilder = capability.ReturnType != null && capability.ReturnType.Category ==
AtsTypeCategory
.Handle &&
1455
if (capability.ReturnType != null && (capability.ReturnType.Category ==
AtsTypeCategory
.Handle || capability.ReturnType.Category ==
AtsTypeCategory
.Dto))
1940
if (targetTypeRef.Category !=
AtsTypeCategory
.Handle)
2189
if (!string.IsNullOrEmpty(typeRef.TypeId) && typeRef.Category ==
AtsTypeCategory
.Handle)
2193
if (!string.IsNullOrEmpty(typeRef.TypeId) && typeRef.Category ==
AtsTypeCategory
.Dict)
2197
if (!string.IsNullOrEmpty(typeRef.TypeId) && typeRef.Category ==
AtsTypeCategory
.List)
Aspire.Hosting.CodeGeneration.Python.Tests (20)
AtsPythonCodeGeneratorTests.cs (20)
393
Category =
AtsTypeCategory
.Dto
870
Category =
AtsTypeCategory
.Handle
894
Category =
AtsTypeCategory
.Primitive
926
Category =
AtsTypeCategory
.Handle
950
Category =
AtsTypeCategory
.Primitive
985
Category =
AtsTypeCategory
.Handle
992
Category =
AtsTypeCategory
.Handle,
1000
Category =
AtsTypeCategory
.Handle,
1024
Category =
AtsTypeCategory
.Primitive
1064
Category =
AtsTypeCategory
.Union,
1070
Category =
AtsTypeCategory
.Union,
1076
Category =
AtsTypeCategory
.Primitive,
1084
Category =
AtsTypeCategory
.Primitive
1119
Category =
AtsTypeCategory
.Array,
1123
Category =
AtsTypeCategory
.Primitive,
1133
Category =
AtsTypeCategory
.Primitive
1169
Category =
AtsTypeCategory
.Primitive
1175
Category =
AtsTypeCategory
.Primitive
1182
Category =
AtsTypeCategory
.Handle
1189
Category =
AtsTypeCategory
.Handle
Aspire.Hosting.CodeGeneration.Rust (54)
AtsRustCodeGenerator.cs (54)
386
AtsTypeCategory
.Primitive => true,
387
AtsTypeCategory
.Enum => true,
388
AtsTypeCategory
.Handle => true,
389
AtsTypeCategory
.Dto => !dtoTypesById.TryGetValue(typeRef.TypeId, out var dto)
391
AtsTypeCategory
.Callback => true,
392
AtsTypeCategory
.Array => true,
393
AtsTypeCategory
.List => true,
394
AtsTypeCategory
.Dict => true,
395
AtsTypeCategory
.Union => true,
396
AtsTypeCategory
.Unknown => true,
617
else if (returnTypeRef?.Category ==
AtsTypeCategory
.Dict && returnTypeRef.IsReadOnly == false)
623
else if (returnTypeRef?.Category ==
AtsTypeCategory
.List && returnTypeRef.IsReadOnly == false)
656
return returnType.Category ==
AtsTypeCategory
.List || returnType.Category ==
AtsTypeCategory
.Dict;
664
var isDict = returnType.Category ==
AtsTypeCategory
.Dict;
914
AtsTypeCategory
.Primitive => MapPrimitiveType(typeRef.TypeId),
915
AtsTypeCategory
.Enum => MapEnumType(typeRef.TypeId),
916
AtsTypeCategory
.Handle => MapHandleType(typeRef.TypeId),
917
AtsTypeCategory
.Dto => MapDtoType(typeRef.TypeId),
918
AtsTypeCategory
.Callback => "Box<dyn Fn(Vec<Value>) -> Value + Send + Sync>",
919
AtsTypeCategory
.Array => $"Vec<{MapTypeRefToRust(typeRef.ElementType, false)}>",
920
AtsTypeCategory
.List => typeRef.IsReadOnly
923
AtsTypeCategory
.Dict => typeRef.IsReadOnly
926
AtsTypeCategory
.Union => "Value",
927
AtsTypeCategory
.Unknown => "Value",
952
AtsTypeCategory
.Primitive => MapPrimitiveType(typeRef.TypeId),
953
AtsTypeCategory
.Enum => MapEnumType(typeRef.TypeId),
955
AtsTypeCategory
.Handle => "Handle",
956
AtsTypeCategory
.Dto => MapDtoType(typeRef.TypeId),
966
AtsTypeCategory
.Callback => "Value",
967
AtsTypeCategory
.Array => $"Vec<{MapTypeRefToRustForDto(typeRef.ElementType, false)}>",
968
AtsTypeCategory
.List => $"Vec<{MapTypeRefToRustForDto(typeRef.ElementType, false)}>",
969
AtsTypeCategory
.Dict => $"HashMap<{MapTypeRefToRustForDto(typeRef.KeyType, false)}, {MapTypeRefToRustForDto(typeRef.ValueType, false)}>",
970
AtsTypeCategory
.Union => "Value",
971
AtsTypeCategory
.Unknown => "Value",
992
AtsTypeCategory
.Primitive => MapPrimitiveType(typeRef.TypeId),
993
AtsTypeCategory
.Enum => MapEnumType(typeRef.TypeId),
994
AtsTypeCategory
.Dto => MapDtoType(typeRef.TypeId),
995
AtsTypeCategory
.Array or
AtsTypeCategory
.List => $"Vec<{MapTypeRefToRustForExportedValue(typeRef.ElementType)}>",
996
AtsTypeCategory
.Dict => $"HashMap<{MapTypeRefToRustForExportedValue(typeRef.KeyType)}, {MapTypeRefToRustForExportedValue(typeRef.ValueType)}>",
997
AtsTypeCategory
.Union or
AtsTypeCategory
.Unknown => "Value",
1037
if (typeRef.Category ==
AtsTypeCategory
.Primitive)
1063
&& typeRef.Category is
AtsTypeCategory
.Primitive or
AtsTypeCategory
.Enum
1067
typeRef?.Category ==
AtsTypeCategory
.Handle
1073
&& (typeRef.Category ==
AtsTypeCategory
.Array || (typeRef.Category ==
AtsTypeCategory
.List && typeRef.IsReadOnly))
1079
&& ((typeRef.Category ==
AtsTypeCategory
.List && !typeRef.IsReadOnly)
1080
|| (typeRef.Category ==
AtsTypeCategory
.Dict && !typeRef.IsReadOnly));
1103
if (typeRef.Category ==
AtsTypeCategory
.Handle)
1116
if (typeRef.Category ==
AtsTypeCategory
.List || typeRef.Category ==
AtsTypeCategory
.Dict)
Aspire.Hosting.CodeGeneration.TypeScript (35)
AtsTypeScriptCodeGenerator.cs (2)
387
if (typeRef?.Category !=
AtsTypeCategory
.Dto ||
402
if (typeRef?.Category !=
AtsTypeCategory
.Dto ||
src\Shared\CodeGeneration\AtsOptionsFlattening.cs (1)
54
if (candidate.Type?.Category !=
AtsTypeCategory
.Dto)
TypeScriptApiProjector.cs (32)
759
return exportedValue.Type.Category is
AtsTypeCategory
.Primitive
773
AtsTypeCategory
.Dto when value is JsonObject obj && _dtoTypesById.TryGetValue(typeRef.TypeId, out var dtoInfo)
775
AtsTypeCategory
.Array or
AtsTypeCategory
.List when value is JsonArray arr
777
AtsTypeCategory
.Dict when value is JsonObject obj
1648
typeRef is { Category:
AtsTypeCategory
.Handle };
1691
AtsTypeCategory
.Primitive => MapPrimitiveType(typeRef.TypeId),
1692
AtsTypeCategory
.Enum => MapEnumType(typeRef.TypeId),
1693
AtsTypeCategory
.Handle => GetWrapperOrHandleName(typeRef.TypeId),
1694
AtsTypeCategory
.Dto => GetDtoInterfaceName(typeRef.TypeId),
1695
AtsTypeCategory
.Callback => "Function", // Callbacks handled separately with full signature
1696
AtsTypeCategory
.Array => FormatArrayType(typeRef.ElementType, MapTypeRefToTypeScript(typeRef.ElementType)),
1697
AtsTypeCategory
.List => $"AspireList<{MapTypeRefToTypeScript(typeRef.ElementType)}>",
1698
AtsTypeCategory
.Dict => typeRef.IsReadOnly
1701
AtsTypeCategory
.Union => MapUnionTypeToTypeScript(typeRef),
1702
AtsTypeCategory
.Unknown => "any", // Unknown types use 'any' since they're not in the ATS universe
1710
if (typeRef.IsNullable != true || typeRef.Category is not (
AtsTypeCategory
.Primitive or
AtsTypeCategory
.Enum))
1729
AtsTypeCategory
.Array or
AtsTypeCategory
.List => FormatArrayType(typeRef.ElementType, MapDtoPropertyTypeToTypeScript(typeRef.ElementType)),
1730
AtsTypeCategory
.Dict => $"Record<{MapDtoPropertyTypeToTypeScript(typeRef.KeyType)}, {MapDtoPropertyTypeToTypeScript(typeRef.ValueType)}>",
1731
AtsTypeCategory
.Union => MapDtoUnionTypeToTypeScript(typeRef),
1738
var requiresGrouping = elementType?.Category ==
AtsTypeCategory
.Union ||
1739
elementType is { IsNullable: true, Category:
AtsTypeCategory
.Primitive or
AtsTypeCategory
.Enum };
1859
if (typeRef?.Category ==
AtsTypeCategory
.Union)
2008
return typeRef.Category ==
AtsTypeCategory
.Handle && typeRef.IsInterface;
2551
if (typeRef.Category ==
AtsTypeCategory
.Union && typeRef.UnionTypes is { Count: > 0 })
2625
return typeRef?.Category ==
AtsTypeCategory
.Dict;
2634
return typeRef?.Category ==
AtsTypeCategory
.List;
2667
if (targetTypeRef.Category !=
AtsTypeCategory
.Handle)
2942
if (!string.IsNullOrEmpty(typeRef.TypeId) && typeRef.Category ==
AtsTypeCategory
.Handle)
Aspire.Hosting.CodeGeneration.TypeScript.Tests (37)
AtsTypeScriptCodeGeneratorTests.cs (37)
284
Category =
AtsTypeCategory
.Handle
289
Category =
AtsTypeCategory
.Primitive
916
Assert.Equal(
AtsTypeCategory
.Handle, dependencyParam.Type.Category);
952
Category =
AtsTypeCategory
.Primitive,
958
Category =
AtsTypeCategory
.Array,
1009
Category =
AtsTypeCategory
.Union,
1025
Category =
AtsTypeCategory
.Primitive
1030
Category =
AtsTypeCategory
.List,
1036
Category =
AtsTypeCategory
.Dict,
1052
Category =
AtsTypeCategory
.Primitive,
1058
Category =
AtsTypeCategory
.Dict,
1059
KeyType = new AtsTypeRef { TypeId = AtsConstants.String, Category =
AtsTypeCategory
.Primitive },
1063
Category =
AtsTypeCategory
.List,
1284
Assert.Equal(
AtsTypeCategory
.Dto, addNodePool.Parameters[^1].CallbackParameters![0].Type.Category);
1285
Assert.Equal(
AtsTypeCategory
.Dto, withSystemNodePool.Parameters[^1].CallbackParameters![0].Type.Category);
1736
Category =
AtsTypeCategory
.Handle
1997
Category =
AtsTypeCategory
.Handle
2009
Category =
AtsTypeCategory
.Primitive
2034
Category =
AtsTypeCategory
.Primitive
2411
Assert.Equal(
AtsTypeCategory
.Primitive, ctParam.Type.Category);
2507
Assert.Equal(
AtsTypeCategory
.Dto, options.Type.Category);
2523
Assert.Equal(
AtsTypeCategory
.Handle, legacyOptions.Type.Category);
2664
Assert.NotEqual(
AtsTypeCategory
.Unknown, param.Type.Category);
3017
Category =
AtsTypeCategory
.Handle
3022
Category =
AtsTypeCategory
.Primitive
3027
Category =
AtsTypeCategory
.Primitive
3222
Category =
AtsTypeCategory
.Handle
3230
Category =
AtsTypeCategory
.Handle
3316
Category =
AtsTypeCategory
.Handle
3331
Category =
AtsTypeCategory
.Primitive
3434
Category =
AtsTypeCategory
.Handle
3449
Category =
AtsTypeCategory
.Callback
3464
Category =
AtsTypeCategory
.Primitive
3471
Category =
AtsTypeCategory
.Primitive
3498
Category =
AtsTypeCategory
.Primitive
3507
Category =
AtsTypeCategory
.Primitive
3515
Category =
AtsTypeCategory
.Primitive
Aspire.Hosting.Native.CodeGeneration (61)
NativeCSharpProjection.cs (11)
115
if (callback.CallbackParameters is not [{ Type.Category:
AtsTypeCategory
.Handle }] ||
160
var value = parameter.Type!.Category ==
AtsTypeCategory
.Union
165
: parameter.Type.Category ==
AtsTypeCategory
.Handle
193
if (capability.ReturnType.Category ==
AtsTypeCategory
.Handle)
237
AtsTypeCategory
.Handle when handles.TryGetValue(type.TypeId, out var handle) => handle,
238
AtsTypeCategory
.Dto when dtos.TryGetValue(type.TypeId, out var dto) => dto,
239
AtsTypeCategory
.Array => TypeName(type.ElementType!) + "[]",
240
AtsTypeCategory
.Union => "object",
241
AtsTypeCategory
.Callback => "Delegate",
242
AtsTypeCategory
.Primitive => type.TypeId switch
258
private static bool ContainsHandle(AtsTypeRef type) => type.Category ==
AtsTypeCategory
.Handle ||
NativeProviderTypeScriptProjection.cs (3)
26
.Append(method.ReturnType)).OfType<AtsTypeRef>().Where(type => type.Category ==
AtsTypeCategory
.Handle)
92
AtsTypeCategory
.Handle => Name(id) + (ownTypes.Contains(id) ? "Client" : ""),
93
AtsTypeCategory
.Primitive => id switch
Program.cs (4)
433
if (parameter.IsCallback && parameter.CallbackParameters is [{ Type.Category:
AtsTypeCategory
.Handle } callbackParameter] &&
439
if (parameter.Type is { Category:
AtsTypeCategory
.Union, UnionTypes: { } members } &&
441
members.All(member => member.TypeId == "string" || member.Category ==
AtsTypeCategory
.Handle))
443
return $"RpcArguments.Union({node}, handles, [{string.Join(", ", members.Where(member => member.Category ==
AtsTypeCategory
.Handle).Select(member => Literal(member.TypeId)))}])";
src\Aspire.Hosting.RemoteHost\AtsCapabilityScanner.cs (43)
684
if (typeRef.Category ==
AtsTypeCategory
.Enum && typeRef.ClrType != null)
768
if (typeRef.Category ==
AtsTypeCategory
.Unknown && validTypes.Contains(typeRef.TypeId))
770
typeRef.Category =
AtsTypeCategory
.Handle;
863
if (typeRef.Category ==
AtsTypeCategory
.Unknown)
930
Category =
AtsTypeCategory
.Handle,
961
Category =
AtsTypeCategory
.Handle,
1171
? new AtsTypeRef { TypeId = "callback", ClrType = prop.PropertyType, Category =
AtsTypeCategory
.Callback }
1386
AtsTypeCategory
.Primitive => typeRef.TypeId != AtsConstants.CancellationToken && typeRef.TypeId != AtsConstants.Void,
1387
AtsTypeCategory
.Enum => true,
1388
AtsTypeCategory
.Dto => IsSupportedExportedDtoType(typeRef, assemblyExportedTypeCache, visitedDtoTypeIds),
1389
AtsTypeCategory
.Array => IsSupportedExportedValueType(typeRef.ElementType, assemblyExportedTypeCache, visitedDtoTypeIds),
1390
AtsTypeCategory
.Dict => typeRef.IsReadOnly
1393
AtsTypeCategory
.Union => typeRef.UnionTypes is not null
1691
: new AtsTypeRef { TypeId = AtsConstants.Any, Category =
AtsTypeCategory
.Primitive };
1696
Category =
AtsTypeCategory
.Dict,
1718
propertyTypeRef = new AtsTypeRef { TypeId = AtsConstants.Any, Category =
AtsTypeCategory
.Primitive };
2231
? new AtsTypeRef { TypeId = "callback", Category =
AtsTypeCategory
.Callback }
2288
returnTypeRef = new AtsTypeRef { TypeId = AtsConstants.Void, Category =
AtsTypeCategory
.Primitive };
2292
returnTypeRef = new AtsTypeRef { TypeId = AtsConstants.Void, Category =
AtsTypeCategory
.Primitive };
2300
?? new AtsTypeRef { TypeId = AtsConstants.Void, Category =
AtsTypeCategory
.Primitive }
2301
: new AtsTypeRef { TypeId = AtsConstants.Void, Category =
AtsTypeCategory
.Primitive };
2306
?? new AtsTypeRef { TypeId = AtsConstants.Void, Category =
AtsTypeCategory
.Primitive }
2334
var voidTypeRef = new AtsTypeRef { TypeId = AtsConstants.Void, Category =
AtsTypeCategory
.Primitive };
2670
Category =
AtsTypeCategory
.Primitive
2785
return new AtsTypeRef { TypeId = primitiveTypeId, ClrType = type, Category =
AtsTypeCategory
.Primitive };
2791
return new AtsTypeRef { TypeId = AtsConstants.Any, ClrType = type, Category =
AtsTypeCategory
.Primitive };
2800
Category =
AtsTypeCategory
.Dict,
2801
KeyType = new AtsTypeRef { TypeId = AtsConstants.String, ClrType = typeof(string), Category =
AtsTypeCategory
.Primitive },
2802
ValueType = new AtsTypeRef { TypeId = AtsConstants.Any, ClrType = typeof(object), Category =
AtsTypeCategory
.Primitive },
2813
Category =
AtsTypeCategory
.List,
2814
ElementType = new AtsTypeRef { TypeId = AtsConstants.Any, ClrType = typeof(object), Category =
AtsTypeCategory
.Primitive }
2828
Category =
AtsTypeCategory
.Enum
2851
Category =
AtsTypeCategory
.Dict,
2874
Category =
AtsTypeCategory
.Dict,
2896
Category =
AtsTypeCategory
.List,
2916
Category =
AtsTypeCategory
.Array,
2961
Category =
AtsTypeCategory
.Array,
2977
Category =
AtsTypeCategory
.Dto,
2989
Category =
AtsTypeCategory
.Handle,
2999
Category =
AtsTypeCategory
.Unknown,
3094
Category =
AtsTypeCategory
.Handle,
3161
Category =
AtsTypeCategory
.Handle,
3419
Category =
AtsTypeCategory
.Union,
Aspire.Hosting.RemoteHost (73)
Ats\AtsMarshaller.cs (25)
157
AtsTypeCategory
.Handle => _handles.Marshal(value, typeRef.TypeId),
158
AtsTypeCategory
.Primitive => SerializePrimitive(value),
159
AtsTypeCategory
.Enum => JsonValue.Create(value.ToString()),
160
AtsTypeCategory
.Dto => SerializeDto(value),
161
AtsTypeCategory
.Array => SerializeArray(value, typeRef.ElementType),
162
AtsTypeCategory
.List => _handles.Marshal(value, typeRef.TypeId),
163
AtsTypeCategory
.Dict => _handles.Marshal(value, typeRef.TypeId),
164
AtsTypeCategory
.Union => MarshalUnion(value, typeRef),
212
var
category = _context.GetCategory(declaredType);
216
AtsTypeCategory
.Primitive => SerializePrimitive(value),
217
AtsTypeCategory
.Enum => JsonValue.Create(value.ToString()),
218
AtsTypeCategory
.Dto => SerializeDto(value),
219
AtsTypeCategory
.Array => SerializeArray(value, CreateElementTypeRef(declaredType)),
220
AtsTypeCategory
.List => _handles.Marshal(value, typeId),
221
AtsTypeCategory
.Dict => _handles.Marshal(value, typeId),
222
AtsTypeCategory
.Handle => _handles.Marshal(value, typeId),
451
var
category = _context.GetCategory(type);
455
AtsTypeCategory
.Primitive => SerializePrimitive(value),
456
AtsTypeCategory
.Enum => JsonValue.Create(value.ToString()),
457
AtsTypeCategory
.Dto => SerializeDto(value),
458
AtsTypeCategory
.Array => SerializeArrayRuntime(value),
459
AtsTypeCategory
.List => MarshalListHandle(value, type),
460
AtsTypeCategory
.Dict => MarshalDictHandle(value, type),
461
AtsTypeCategory
.Handle => _handles.Marshal(value, AtsTypeMapping.DeriveTypeId(type)),
986
return _context.GetCategory(type) ==
AtsTypeCategory
.Dto;
Ats\ExternalCapabilityRegistry.cs (2)
796
: new AtsTypeRef { TypeId = "unknown", Category =
AtsTypeCategory
.Unknown }
869
public
AtsTypeCategory
Category { get; set; }
AtsCapabilityScanner.cs (43)
684
if (typeRef.Category ==
AtsTypeCategory
.Enum && typeRef.ClrType != null)
768
if (typeRef.Category ==
AtsTypeCategory
.Unknown && validTypes.Contains(typeRef.TypeId))
770
typeRef.Category =
AtsTypeCategory
.Handle;
863
if (typeRef.Category ==
AtsTypeCategory
.Unknown)
930
Category =
AtsTypeCategory
.Handle,
961
Category =
AtsTypeCategory
.Handle,
1171
? new AtsTypeRef { TypeId = "callback", ClrType = prop.PropertyType, Category =
AtsTypeCategory
.Callback }
1386
AtsTypeCategory
.Primitive => typeRef.TypeId != AtsConstants.CancellationToken && typeRef.TypeId != AtsConstants.Void,
1387
AtsTypeCategory
.Enum => true,
1388
AtsTypeCategory
.Dto => IsSupportedExportedDtoType(typeRef, assemblyExportedTypeCache, visitedDtoTypeIds),
1389
AtsTypeCategory
.Array => IsSupportedExportedValueType(typeRef.ElementType, assemblyExportedTypeCache, visitedDtoTypeIds),
1390
AtsTypeCategory
.Dict => typeRef.IsReadOnly
1393
AtsTypeCategory
.Union => typeRef.UnionTypes is not null
1691
: new AtsTypeRef { TypeId = AtsConstants.Any, Category =
AtsTypeCategory
.Primitive };
1696
Category =
AtsTypeCategory
.Dict,
1718
propertyTypeRef = new AtsTypeRef { TypeId = AtsConstants.Any, Category =
AtsTypeCategory
.Primitive };
2231
? new AtsTypeRef { TypeId = "callback", Category =
AtsTypeCategory
.Callback }
2288
returnTypeRef = new AtsTypeRef { TypeId = AtsConstants.Void, Category =
AtsTypeCategory
.Primitive };
2292
returnTypeRef = new AtsTypeRef { TypeId = AtsConstants.Void, Category =
AtsTypeCategory
.Primitive };
2300
?? new AtsTypeRef { TypeId = AtsConstants.Void, Category =
AtsTypeCategory
.Primitive }
2301
: new AtsTypeRef { TypeId = AtsConstants.Void, Category =
AtsTypeCategory
.Primitive };
2306
?? new AtsTypeRef { TypeId = AtsConstants.Void, Category =
AtsTypeCategory
.Primitive }
2334
var voidTypeRef = new AtsTypeRef { TypeId = AtsConstants.Void, Category =
AtsTypeCategory
.Primitive };
2670
Category =
AtsTypeCategory
.Primitive
2785
return new AtsTypeRef { TypeId = primitiveTypeId, ClrType = type, Category =
AtsTypeCategory
.Primitive };
2791
return new AtsTypeRef { TypeId = AtsConstants.Any, ClrType = type, Category =
AtsTypeCategory
.Primitive };
2800
Category =
AtsTypeCategory
.Dict,
2801
KeyType = new AtsTypeRef { TypeId = AtsConstants.String, ClrType = typeof(string), Category =
AtsTypeCategory
.Primitive },
2802
ValueType = new AtsTypeRef { TypeId = AtsConstants.Any, ClrType = typeof(object), Category =
AtsTypeCategory
.Primitive },
2813
Category =
AtsTypeCategory
.List,
2814
ElementType = new AtsTypeRef { TypeId = AtsConstants.Any, ClrType = typeof(object), Category =
AtsTypeCategory
.Primitive }
2828
Category =
AtsTypeCategory
.Enum
2851
Category =
AtsTypeCategory
.Dict,
2874
Category =
AtsTypeCategory
.Dict,
2896
Category =
AtsTypeCategory
.List,
2916
Category =
AtsTypeCategory
.Array,
2961
Category =
AtsTypeCategory
.Array,
2977
Category =
AtsTypeCategory
.Dto,
2989
Category =
AtsTypeCategory
.Handle,
2999
Category =
AtsTypeCategory
.Unknown,
3094
Category =
AtsTypeCategory
.Handle,
3161
Category =
AtsTypeCategory
.Handle,
3419
Category =
AtsTypeCategory
.Union,
AtsContextFilter.cs (3)
326
Category =
AtsTypeCategory
.Handle,
345
Category =
AtsTypeCategory
.Primitive
394
if (typeRef.Category ==
AtsTypeCategory
.Handle && !string.IsNullOrEmpty(typeRef.TypeId))
Aspire.Hosting.RemoteHost.Tests (43)
AtsCapabilityScannerTests.cs (11)
161
Assert.Equal(
AtsTypeCategory
.Array, itemsType.Category);
166
Assert.Equal(
AtsTypeCategory
.Array, enumerableReturnCapability.ReturnType.Category);
177
Assert.Equal(
AtsTypeCategory
.Array, typeRef.Category);
192
Assert.Equal(
AtsTypeCategory
.Union, parameter.Type?.Category);
336
Assert.Equal(
AtsTypeCategory
.Union, resourceParameter.Type?.Category);
342
Assert.Equal(
AtsTypeCategory
.Dict, argumentsParameter.Type?.Category);
425
Assert.Equal(
AtsTypeCategory
.Dto, optionsParameter.Type.Category);
442
Assert.Equal(
AtsTypeCategory
.Handle, callbackParameter.Type.Category);
444
Assert.Equal(
AtsTypeCategory
.Dto, prepareRequestProperty.CallbackReturnType?.Category);
664
Assert.NotEqual(
AtsTypeCategory
.Unknown, cbParam.Type.Category);
683
Assert.Equal(
AtsTypeCategory
.Handle, parameter.Type.Category);
AtsContextFilterTests.cs (17)
192
Category =
AtsTypeCategory
.Dto
199
Category =
AtsTypeCategory
.Handle
206
Category =
AtsTypeCategory
.Handle,
278
Category =
AtsTypeCategory
.Enum
285
Type = new AtsTypeRef { TypeId = AtsConstants.Void, Category =
AtsTypeCategory
.Primitive },
296
Category =
AtsTypeCategory
.Enum
436
Category =
AtsTypeCategory
.Enum
489
Category =
AtsTypeCategory
.Enum
509
Category =
AtsTypeCategory
.Handle
519
Category =
AtsTypeCategory
.Dto
529
Category =
AtsTypeCategory
.Enum
537
Category =
AtsTypeCategory
.Handle,
545
Category =
AtsTypeCategory
.Handle
562
Category =
AtsTypeCategory
.Handle
580
Category =
AtsTypeCategory
.Primitive
593
Category =
AtsTypeCategory
.Dto
606
Category =
AtsTypeCategory
.Primitive
AtsMarshallerTests.cs (12)
172
Category =
AtsTypeCategory
.Union,
175
new AtsTypeRef { TypeId = AtsConstants.String, ClrType = typeof(string), Category =
AtsTypeCategory
.Primitive },
176
new AtsTypeRef { TypeId = AtsConstants.Number, ClrType = typeof(int), Category =
AtsTypeCategory
.Primitive },
177
new AtsTypeRef { TypeId = AtsConstants.Boolean, ClrType = typeof(bool), Category =
AtsTypeCategory
.Primitive }
195
Category =
AtsTypeCategory
.Union,
198
new AtsTypeRef { TypeId = AtsConstants.String, ClrType = typeof(string), Category =
AtsTypeCategory
.Primitive },
199
new AtsTypeRef { TypeId = "test/IResource", ClrType = typeof(IResource), Category =
AtsTypeCategory
.Handle }
217
Category =
AtsTypeCategory
.Union,
220
new AtsTypeRef { TypeId = AtsConstants.String, ClrType = typeof(string), Category =
AtsTypeCategory
.Primitive },
221
new AtsTypeRef { TypeId = AtsConstants.Boolean, ClrType = typeof(bool), Category =
AtsTypeCategory
.Primitive }
294
Category =
AtsTypeCategory
.Primitive
1021
var typeRef = new AtsTypeRef { TypeId = "test/SelfReferencingDto", Category =
AtsTypeCategory
.Dto };
ExternalCapabilityRegistryTests.cs (3)
894
ReturnType = new AtsTypeRef { TypeId = AtsConstants.Boolean, Category =
AtsTypeCategory
.Primitive }
920
ReturnType = new AtsTypeRef { TypeId = AtsConstants.Boolean, Category =
AtsTypeCategory
.Primitive }
964
Type = new AtsTypeRef { TypeId = AtsConstants.String, Category =
AtsTypeCategory
.Primitive },
Aspire.TypeSystem (31)
AtsCapabilityInfo.cs (1)
30
public
AtsTypeCategory
Category { get; set; }
AtsConstants.cs (19)
352
public static
AtsTypeCategory
GetCategory(string? typeId, bool isCallback = false)
356
return
AtsTypeCategory
.Callback;
361
return
AtsTypeCategory
.Primitive;
366
return
AtsTypeCategory
.Enum;
371
return
AtsTypeCategory
.Array;
376
return
AtsTypeCategory
.List;
381
return
AtsTypeCategory
.Dict;
389
return
AtsTypeCategory
.Handle;
444
public static
AtsTypeCategory
GetCategory(Type type)
448
return
AtsTypeCategory
.Primitive;
453
return
AtsTypeCategory
.Enum;
458
return
AtsTypeCategory
.Array;
463
return
AtsTypeCategory
.List;
468
return
AtsTypeCategory
.Array; // ReadOnly collections serialize as arrays
473
return
AtsTypeCategory
.Dict;
478
return
AtsTypeCategory
.Callback;
484
return
AtsTypeCategory
.Dto;
490
return
AtsTypeCategory
.Handle;
494
return
AtsTypeCategory
.Unknown;
AtsContext.cs (11)
107
public
AtsTypeCategory
GetCategory(Type type)
112
return
AtsTypeCategory
.Primitive;
118
return
AtsTypeCategory
.Enum;
124
return
AtsTypeCategory
.Array;
134
return
AtsTypeCategory
.List;
139
return
AtsTypeCategory
.Array;
145
return
AtsTypeCategory
.Dict;
152
return
AtsTypeCategory
.Callback;
159
return
AtsTypeCategory
.Dto;
166
return
AtsTypeCategory
.Handle;
170
return
AtsTypeCategory
.Handle;