@azure-tools/typespec-rust 0.36.0 → 0.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/codegen/clients.d.ts +4 -4
- package/dist/src/codegen/clients.d.ts.map +1 -1
- package/dist/src/codegen/clients.js +167 -67
- package/dist/src/codegen/clients.js.map +1 -1
- package/dist/src/codegen/codeGenerator.d.ts +6 -0
- package/dist/src/codegen/codeGenerator.d.ts.map +1 -1
- package/dist/src/codegen/codeGenerator.js +112 -32
- package/dist/src/codegen/codeGenerator.js.map +1 -1
- package/dist/src/codegen/context.d.ts +10 -0
- package/dist/src/codegen/context.d.ts.map +1 -1
- package/dist/src/codegen/context.js +57 -15
- package/dist/src/codegen/context.js.map +1 -1
- package/dist/src/codegen/docTests.d.ts +1 -2
- package/dist/src/codegen/docTests.d.ts.map +1 -1
- package/dist/src/codegen/docTests.js +13 -3
- package/dist/src/codegen/docTests.js.map +1 -1
- package/dist/src/codegen/enums.d.ts +4 -4
- package/dist/src/codegen/enums.d.ts.map +1 -1
- package/dist/src/codegen/enums.js +21 -21
- package/dist/src/codegen/enums.js.map +1 -1
- package/dist/src/codegen/headerTraits.d.ts +2 -2
- package/dist/src/codegen/headerTraits.d.ts.map +1 -1
- package/dist/src/codegen/headerTraits.js +17 -9
- package/dist/src/codegen/headerTraits.js.map +1 -1
- package/dist/src/codegen/helpers.d.ts +12 -3
- package/dist/src/codegen/helpers.d.ts.map +1 -1
- package/dist/src/codegen/helpers.js +19 -13
- package/dist/src/codegen/helpers.js.map +1 -1
- package/dist/src/codegen/lib.d.ts +3 -1
- package/dist/src/codegen/lib.d.ts.map +1 -1
- package/dist/src/codegen/lib.js +5 -1
- package/dist/src/codegen/lib.js.map +1 -1
- package/dist/src/codegen/mod.d.ts +9 -2
- package/dist/src/codegen/mod.d.ts.map +1 -1
- package/dist/src/codegen/mod.js +25 -9
- package/dist/src/codegen/mod.js.map +1 -1
- package/dist/src/codegen/models.d.ts +4 -4
- package/dist/src/codegen/models.d.ts.map +1 -1
- package/dist/src/codegen/models.js +76 -30
- package/dist/src/codegen/models.js.map +1 -1
- package/dist/src/codegen/unions.d.ts +4 -4
- package/dist/src/codegen/unions.d.ts.map +1 -1
- package/dist/src/codegen/unions.js +71 -45
- package/dist/src/codegen/unions.js.map +1 -1
- package/dist/src/codegen/use.d.ts +4 -2
- package/dist/src/codegen/use.d.ts.map +1 -1
- package/dist/src/codegen/use.js +22 -26
- package/dist/src/codegen/use.js.map +1 -1
- package/dist/src/codemodel/client.d.ts +30 -15
- package/dist/src/codemodel/client.d.ts.map +1 -1
- package/dist/src/codemodel/client.js +11 -7
- package/dist/src/codemodel/client.js.map +1 -1
- package/dist/src/codemodel/crate.d.ts +42 -12
- package/dist/src/codemodel/crate.d.ts.map +1 -1
- package/dist/src/codemodel/crate.js +21 -46
- package/dist/src/codemodel/crate.js.map +1 -1
- package/dist/src/codemodel/types.d.ts +60 -34
- package/dist/src/codemodel/types.d.ts.map +1 -1
- package/dist/src/codemodel/types.js +26 -10
- package/dist/src/codemodel/types.js.map +1 -1
- package/dist/src/emitter.d.ts.map +1 -1
- package/dist/src/emitter.js +40 -12
- package/dist/src/emitter.js.map +1 -1
- package/dist/src/lib.d.ts +2 -0
- package/dist/src/lib.d.ts.map +1 -1
- package/dist/src/lib.js +6 -0
- package/dist/src/lib.js.map +1 -1
- package/dist/src/tcgcadapter/adapter.d.ts +75 -13
- package/dist/src/tcgcadapter/adapter.d.ts.map +1 -1
- package/dist/src/tcgcadapter/adapter.js +655 -173
- package/dist/src/tcgcadapter/adapter.js.map +1 -1
- package/dist/src/utils/utils.d.ts +7 -4
- package/dist/src/utils/utils.d.ts.map +1 -1
- package/dist/src/utils/utils.js +25 -23
- package/dist/src/utils/utils.js.map +1 -1
- package/package.json +17 -17
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Use } from './use.js';
|
|
2
2
|
import * as rust from '../codemodel/index.js';
|
|
3
|
+
/** the key phrase used in the generated code header */
|
|
4
|
+
export declare const generatedCodeKeyPhrase = "Rust Code Generator";
|
|
3
5
|
export declare const AnnotationNonExhaustive = "#[non_exhaustive]\n";
|
|
4
6
|
export declare const AnonymousLifetimeAnnotation = "<'_>";
|
|
5
7
|
/** defines the possible visibilities for a module */
|
|
@@ -66,7 +68,7 @@ export declare function emitVisibility(visibility: rust.Visibility): string;
|
|
|
66
68
|
* - 'omit': Omits the lifetime annotation entirely, even if the type would normally require one.
|
|
67
69
|
* @returns
|
|
68
70
|
*/
|
|
69
|
-
export declare function getTypeDeclaration(type: rust.Client | rust.
|
|
71
|
+
export declare function getTypeDeclaration(type: rust.Client | rust.ResponseHeadersTrait | rust.Type, withLifetime?: 'default' | 'anonymous' | 'omit'): string;
|
|
70
72
|
/** helper for managing indentation levels */
|
|
71
73
|
export declare class indentation {
|
|
72
74
|
private level;
|
|
@@ -185,7 +187,7 @@ export declare function capitalize(str: string): string;
|
|
|
185
187
|
* @param type is the type to unwrap
|
|
186
188
|
* @returns the wrapped type or the original type if it wasn't wrapped
|
|
187
189
|
*/
|
|
188
|
-
export declare function unwrapType(type: rust.
|
|
190
|
+
export declare function unwrapType(type: rust.Type): rust.Type;
|
|
189
191
|
/** the wire format used */
|
|
190
192
|
export type ModelFormat = 'json' | 'xml';
|
|
191
193
|
/**
|
|
@@ -194,7 +196,7 @@ export type ModelFormat = 'json' | 'xml';
|
|
|
194
196
|
* @param format is the format to convert
|
|
195
197
|
* @returns json or xml
|
|
196
198
|
*/
|
|
197
|
-
export declare function convertResponseFormat(format:
|
|
199
|
+
export declare function convertResponseFormat(format: rust.ModelPayloadFormatType): ModelFormat;
|
|
198
200
|
/**
|
|
199
201
|
* returns the applicable base64 decoding/encoding function and brings it into scope
|
|
200
202
|
*
|
|
@@ -243,4 +245,11 @@ export declare function getUniqueVarName(params: Array<rust.MethodParameter>, ca
|
|
|
243
245
|
export declare function isPathParameter(param: rust.MethodParameter): param is rust.PathCollectionParameter | rust.PathHashMapParameter | rust.PathScalarParameter;
|
|
244
246
|
/** narrows param to the applicable query parameter type within the conditional block */
|
|
245
247
|
export declare function isQueryParameter(param: rust.MethodParameter): param is rust.QueryCollectionParameter | rust.QueryHashMapParameter | rust.QueryScalarParameter;
|
|
248
|
+
/**
|
|
249
|
+
* returns the containing crate for a module.
|
|
250
|
+
*
|
|
251
|
+
* @param module the module
|
|
252
|
+
* @returns the containing crate
|
|
253
|
+
*/
|
|
254
|
+
export declare function getCrate(module: rust.ModuleContainer): rust.Crate;
|
|
246
255
|
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/codegen/helpers.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/codegen/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,12 @@
|
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
5
|
import { CodegenError } from './errors.js';
|
|
6
6
|
import * as utils from '../utils/utils.js';
|
|
7
|
+
/** the key phrase used in the generated code header */
|
|
8
|
+
export const generatedCodeKeyPhrase = 'Rust Code Generator';
|
|
7
9
|
const headerText = `// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
8
10
|
// Licensed under the MIT License.
|
|
9
11
|
//
|
|
10
|
-
// Code generated by Microsoft (R)
|
|
12
|
+
// Code generated by Microsoft (R) ${generatedCodeKeyPhrase}.`;
|
|
11
13
|
export const AnnotationNonExhaustive = '#[non_exhaustive]\n';
|
|
12
14
|
export const AnonymousLifetimeAnnotation = '<\'_>';
|
|
13
15
|
/** used to track the visibility of types within a module */
|
|
@@ -195,19 +197,11 @@ export function getTypeDeclaration(type, withLifetime = 'default') {
|
|
|
195
197
|
case 'poller':
|
|
196
198
|
// we explicitly omit the Response<T> from the type decl
|
|
197
199
|
return `Poller<${getTypeDeclaration(type.type.content, withLifetime)}>`;
|
|
198
|
-
case 'payload':
|
|
199
|
-
return getTypeDeclaration(type.type, withLifetime);
|
|
200
200
|
case 'ref':
|
|
201
|
-
return `&${getTypeDeclaration(type.type)}`;
|
|
201
|
+
return `&${type.lifetime ? `${type.lifetime.name} ` : ''}${getTypeDeclaration(type.type)}`;
|
|
202
202
|
case 'requestContent': {
|
|
203
203
|
const formatType = `${type.format !== 'JsonFormat' ? `, ${type.format}` : ''}`;
|
|
204
|
-
|
|
205
|
-
case 'bytes':
|
|
206
|
-
return `${type.name}<${getTypeDeclaration(type.content)}${formatType}>`;
|
|
207
|
-
case 'payload':
|
|
208
|
-
return `${type.name}<${getTypeDeclaration(type.content.type, withLifetime)}${formatType}>`;
|
|
209
|
-
}
|
|
210
|
-
break;
|
|
204
|
+
return `${type.name}<${getTypeDeclaration(type.content, withLifetime)}${formatType}>`;
|
|
211
205
|
}
|
|
212
206
|
case 'result':
|
|
213
207
|
return `${type.name}<${getTypeDeclaration(type.type, withLifetime)}>`;
|
|
@@ -230,6 +224,7 @@ export function getTypeDeclaration(type, withLifetime = 'default') {
|
|
|
230
224
|
case 'responseHeadersTrait':
|
|
231
225
|
case 'safeint':
|
|
232
226
|
case 'tokenCredential':
|
|
227
|
+
case 'untaggedUnion':
|
|
233
228
|
return type.name;
|
|
234
229
|
case 'external':
|
|
235
230
|
case 'model':
|
|
@@ -434,8 +429,6 @@ export function unwrapType(type) {
|
|
|
434
429
|
return unwrapType(type.type.content);
|
|
435
430
|
case 'poller':
|
|
436
431
|
return unwrapType(type.type.content);
|
|
437
|
-
case 'payload':
|
|
438
|
-
return unwrapType(type.type);
|
|
439
432
|
default:
|
|
440
433
|
return type;
|
|
441
434
|
}
|
|
@@ -572,4 +565,17 @@ export function isQueryParameter(param) {
|
|
|
572
565
|
return false;
|
|
573
566
|
}
|
|
574
567
|
}
|
|
568
|
+
/**
|
|
569
|
+
* returns the containing crate for a module.
|
|
570
|
+
*
|
|
571
|
+
* @param module the module
|
|
572
|
+
* @returns the containing crate
|
|
573
|
+
*/
|
|
574
|
+
export function getCrate(module) {
|
|
575
|
+
let cur = module;
|
|
576
|
+
while (cur.kind !== 'crate') {
|
|
577
|
+
cur = cur.parent;
|
|
578
|
+
}
|
|
579
|
+
return cur;
|
|
580
|
+
}
|
|
575
581
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/codegen/helpers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/codegen/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import * as rust from '../codemodel/index.js';
|
|
1
2
|
/**
|
|
2
3
|
* emits the contents of the lib.rs file
|
|
3
4
|
*
|
|
5
|
+
* @param crate the crate for which to emit the lib.rs file
|
|
4
6
|
* @returns the contents of the lib.rs file
|
|
5
7
|
*/
|
|
6
|
-
export declare function emitLibRs(): string;
|
|
8
|
+
export declare function emitLibRs(crate: rust.Crate): string;
|
|
7
9
|
//# sourceMappingURL=lib.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../../src/codegen/lib.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../../src/codegen/lib.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAE9C;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAUnD"}
|
package/dist/src/codegen/lib.js
CHANGED
|
@@ -6,14 +6,18 @@ import * as helpers from './helpers.js';
|
|
|
6
6
|
/**
|
|
7
7
|
* emits the contents of the lib.rs file
|
|
8
8
|
*
|
|
9
|
+
* @param crate the crate for which to emit the lib.rs file
|
|
9
10
|
* @returns the contents of the lib.rs file
|
|
10
11
|
*/
|
|
11
|
-
export function emitLibRs() {
|
|
12
|
+
export function emitLibRs(crate) {
|
|
12
13
|
let content = helpers.contentPreamble(false);
|
|
13
14
|
content += '#![cfg_attr(docsrs, feature(doc_cfg))]\n';
|
|
14
15
|
content += '\n';
|
|
15
16
|
content += 'mod generated;\n';
|
|
16
17
|
content += 'pub use generated::*;\n';
|
|
18
|
+
for (const subModule of crate.subModules) {
|
|
19
|
+
content += `pub mod ${subModule.name};\n`;
|
|
20
|
+
}
|
|
17
21
|
return content;
|
|
18
22
|
}
|
|
19
23
|
//# sourceMappingURL=lib.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../../src/codegen/lib.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../../src/codegen/lib.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAGxC;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,KAAiB;IACzC,IAAI,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC7C,OAAO,IAAI,0CAA0C,CAAC;IACtD,OAAO,IAAI,IAAI,CAAC;IAChB,OAAO,IAAI,kBAAkB,CAAC;IAC9B,OAAO,IAAI,yBAAyB,CAAC;IACrC,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACzC,OAAO,IAAI,WAAW,SAAS,CAAC,IAAI,KAAK,CAAC;IAC5C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -9,10 +9,10 @@ export declare function emitClientsModRs(modules: Array<string>): string;
|
|
|
9
9
|
/**
|
|
10
10
|
* emits the contents of the generated/mod.rs file
|
|
11
11
|
*
|
|
12
|
-
* @param
|
|
12
|
+
* @param module the module for which to emit the mod.rs file
|
|
13
13
|
* @returns the contents of the mod.rs file
|
|
14
14
|
*/
|
|
15
|
-
export declare function emitGeneratedModRs(
|
|
15
|
+
export declare function emitGeneratedModRs(module: rust.ModuleContainer): string;
|
|
16
16
|
/**
|
|
17
17
|
* emits the contents of the models/mod.rs file
|
|
18
18
|
*
|
|
@@ -20,4 +20,11 @@ export declare function emitGeneratedModRs(crate: rust.Crate): string;
|
|
|
20
20
|
* @returns the contents of the mod.rs file
|
|
21
21
|
*/
|
|
22
22
|
export declare function emitModelsModRs(modules: Array<string>): string;
|
|
23
|
+
/**
|
|
24
|
+
* emits the contents of mod.rs for a sub-module
|
|
25
|
+
*
|
|
26
|
+
* @param module the sub-module for which to emit the content
|
|
27
|
+
* @returns the contents of the mod.rs file
|
|
28
|
+
*/
|
|
29
|
+
export declare function emitSubModRs(module: rust.SubModule): string;
|
|
23
30
|
//# sourceMappingURL=mod.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../src/codegen/mod.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAE9C;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAc/D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../src/codegen/mod.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAE9C;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAc/D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,GAAG,MAAM,CAgCvE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAI9D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,GAAG,MAAM,CAS3D"}
|
package/dist/src/codegen/mod.js
CHANGED
|
@@ -24,25 +24,23 @@ export function emitClientsModRs(modules) {
|
|
|
24
24
|
/**
|
|
25
25
|
* emits the contents of the generated/mod.rs file
|
|
26
26
|
*
|
|
27
|
-
* @param
|
|
27
|
+
* @param module the module for which to emit the mod.rs file
|
|
28
28
|
* @returns the contents of the mod.rs file
|
|
29
29
|
*/
|
|
30
|
-
export function emitGeneratedModRs(
|
|
30
|
+
export function emitGeneratedModRs(module) {
|
|
31
31
|
let content = helpers.contentPreamble();
|
|
32
32
|
const pubModModels = '/// Contains all the data structures and types used by the client library.\npub mod models;\n';
|
|
33
|
-
if (
|
|
33
|
+
if (module.clients.length > 0) {
|
|
34
34
|
content += '/// Clients used to communicate with the service.\n';
|
|
35
35
|
content += 'pub mod clients;\n';
|
|
36
|
-
// client method options are in the models module
|
|
37
|
-
content += pubModModels;
|
|
38
36
|
}
|
|
39
|
-
|
|
37
|
+
if (module.clients.find((client) => client.methods.find((method) => method.kind !== 'clientaccessor')) || module.enums.length > 0 || module.models.length > 0 || module.unions.length > 0) {
|
|
40
38
|
content += pubModModels;
|
|
41
39
|
}
|
|
42
|
-
if (
|
|
40
|
+
if (module.clients.length > 0) {
|
|
43
41
|
// the instantiable clients and their options types get re-exported from the root
|
|
44
42
|
const clientsAndClientOptions = new Array();
|
|
45
|
-
for (const client of
|
|
43
|
+
for (const client of module.clients) {
|
|
46
44
|
if (client.constructable) {
|
|
47
45
|
clientsAndClientOptions.push(client.name);
|
|
48
46
|
// skip emitting the client options type (we always want to emit the client type)
|
|
@@ -51,7 +49,9 @@ export function emitGeneratedModRs(crate) {
|
|
|
51
49
|
}
|
|
52
50
|
}
|
|
53
51
|
}
|
|
54
|
-
|
|
52
|
+
if (clientsAndClientOptions.length > 0) {
|
|
53
|
+
content += `pub use clients::{${clientsAndClientOptions.join(', ')}};\n`;
|
|
54
|
+
}
|
|
55
55
|
}
|
|
56
56
|
return content;
|
|
57
57
|
}
|
|
@@ -66,4 +66,20 @@ export function emitModelsModRs(modules) {
|
|
|
66
66
|
return helpers.contentPreamble()
|
|
67
67
|
+ modules.sort().map((module) => module.match(/mod models$/) ? `#[allow(clippy::module_inception)]\n${module}` : module).join(';\n') + ';\n';
|
|
68
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* emits the contents of mod.rs for a sub-module
|
|
71
|
+
*
|
|
72
|
+
* @param module the sub-module for which to emit the content
|
|
73
|
+
* @returns the contents of the mod.rs file
|
|
74
|
+
*/
|
|
75
|
+
export function emitSubModRs(module) {
|
|
76
|
+
let content = helpers.contentPreamble(); //
|
|
77
|
+
if (module.clients.length > 0 || module.enums.length > 0 || module.models.length > 0 || module.unions.length > 0) {
|
|
78
|
+
content += 'mod generated;\npub use generated::*;\n';
|
|
79
|
+
}
|
|
80
|
+
for (const subModule of module.subModules) {
|
|
81
|
+
content += `pub mod ${subModule.name};\n`;
|
|
82
|
+
}
|
|
83
|
+
return content;
|
|
84
|
+
}
|
|
69
85
|
//# sourceMappingURL=mod.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../../src/codegen/mod.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAGxC;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAsB;IACrD,MAAM,IAAI,GAAG,IAAI,KAAK,EAAU,CAAC;IAEjC,wCAAwC;IACxC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,MAAM,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,4CAA4C;IAC5C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,WAAW,MAAM,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,OAAO,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../../src/codegen/mod.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,11 +14,11 @@ export interface Models {
|
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
16
16
|
* returns the emitted model types, or empty if the
|
|
17
|
-
*
|
|
17
|
+
* module contains no model types.
|
|
18
18
|
*
|
|
19
|
-
* @param
|
|
20
|
-
* @param context the context for the provided
|
|
19
|
+
* @param module the module for which to emit models
|
|
20
|
+
* @param context the context for the provided module
|
|
21
21
|
* @returns the model content or empty
|
|
22
22
|
*/
|
|
23
|
-
export declare function emitModels(
|
|
23
|
+
export declare function emitModels(module: rust.ModuleContainer, context: Context): Models;
|
|
24
24
|
//# sourceMappingURL=models.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/codegen/models.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAExC,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAG9C,iDAAiD;AACjD,MAAM,WAAW,MAAM;IACrB,wBAAwB;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;IAE7B,+BAA+B;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;IAEvB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;IAEvB,iDAAiD;IACjD,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/codegen/models.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAExC,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAG9C,iDAAiD;AACjD,MAAM,WAAW,MAAM;IACrB,wBAAwB;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;IAE7B,+BAA+B;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;IAEvB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;IAEvB,iDAAiD;IACjD,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAejF"}
|
|
@@ -9,38 +9,41 @@ import * as rust from '../codemodel/index.js';
|
|
|
9
9
|
import * as utils from '../utils/utils.js';
|
|
10
10
|
/**
|
|
11
11
|
* returns the emitted model types, or empty if the
|
|
12
|
-
*
|
|
12
|
+
* module contains no model types.
|
|
13
13
|
*
|
|
14
|
-
* @param
|
|
15
|
-
* @param context the context for the provided
|
|
14
|
+
* @param module the module for which to emit models
|
|
15
|
+
* @param context the context for the provided module
|
|
16
16
|
* @returns the model content or empty
|
|
17
17
|
*/
|
|
18
|
-
export function emitModels(
|
|
19
|
-
if (
|
|
18
|
+
export function emitModels(module, context) {
|
|
19
|
+
if (module.models.length === 0) {
|
|
20
20
|
return {};
|
|
21
21
|
}
|
|
22
|
+
serdeHelpers.clear();
|
|
23
|
+
serdeHelpersForXmlAddlProps.clear();
|
|
24
|
+
xmlListWrappers.clear();
|
|
22
25
|
return {
|
|
23
|
-
definitions: emitModelDefinitions(
|
|
24
|
-
serde: emitModelsSerde(),
|
|
25
|
-
impls: emitModelImpls(
|
|
26
|
-
xmlHelpers: emitXMLListWrappers(),
|
|
26
|
+
definitions: emitModelDefinitions(module, context),
|
|
27
|
+
serde: emitModelsSerde(module),
|
|
28
|
+
impls: emitModelImpls(module, context),
|
|
29
|
+
xmlHelpers: emitXMLListWrappers(module),
|
|
27
30
|
};
|
|
28
31
|
}
|
|
29
32
|
/**
|
|
30
33
|
* the implementation of emitModels
|
|
31
34
|
*
|
|
32
|
-
* @param
|
|
33
|
-
* @param context the context for the provided
|
|
35
|
+
* @param module the module for which to emit models
|
|
36
|
+
* @param context the context for the provided module
|
|
34
37
|
* @returns the model content or empty
|
|
35
38
|
*/
|
|
36
|
-
function emitModelDefinitions(
|
|
39
|
+
function emitModelDefinitions(module, context) {
|
|
37
40
|
// for the internal models we might need to use public model types
|
|
38
|
-
const use = new Use('models');
|
|
41
|
+
const use = new Use(module, 'models');
|
|
39
42
|
use.add('azure_core::fmt', 'SafeDebug');
|
|
40
43
|
const indent = new helpers.indentation();
|
|
41
44
|
const visTracker = new helpers.VisibilityTracker();
|
|
42
45
|
let body = '';
|
|
43
|
-
for (const model of
|
|
46
|
+
for (const model of module.models) {
|
|
44
47
|
visTracker.update(model.visibility);
|
|
45
48
|
if (model.kind === 'marker') {
|
|
46
49
|
body += helpers.formatDocComment(model.docs);
|
|
@@ -50,8 +53,34 @@ function emitModelDefinitions(crate, context) {
|
|
|
50
53
|
body += `${helpers.emitVisibility(model.visibility)}struct ${model.name};\n\n`;
|
|
51
54
|
continue;
|
|
52
55
|
}
|
|
56
|
+
const hasAzureErrorDetailFields = function (type) {
|
|
57
|
+
switch (type.kind) {
|
|
58
|
+
case 'model':
|
|
59
|
+
for (const field of type.fields) {
|
|
60
|
+
if (hasAzureErrorDetailFields(field.type)) {
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
break;
|
|
65
|
+
case 'option':
|
|
66
|
+
if (hasAzureErrorDetailFields(type.type)) {
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
break;
|
|
70
|
+
case 'external':
|
|
71
|
+
if (type.name === 'ErrorDetail' && type.path === 'azure_core::error') {
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
return false;
|
|
77
|
+
};
|
|
78
|
+
const isOperationStatus = hasAzureErrorDetailFields(model);
|
|
53
79
|
// we add this here to avoid using serde for marker-only models
|
|
54
|
-
use.add('serde', 'Deserialize'
|
|
80
|
+
use.add('serde', 'Deserialize');
|
|
81
|
+
if (!isOperationStatus) {
|
|
82
|
+
use.add('serde', 'Serialize');
|
|
83
|
+
}
|
|
55
84
|
const bodyFormat = context.getModelBodyFormat(model);
|
|
56
85
|
// if the model is XML and contains additional properties,
|
|
57
86
|
// it will need a full custom serde implementation. so, we
|
|
@@ -62,7 +91,12 @@ function emitModelDefinitions(crate, context) {
|
|
|
62
91
|
// it's not necessary and will cause compilation failures
|
|
63
92
|
// when the type contains something that doesn't have a
|
|
64
93
|
// default impl (e.g. enum types).
|
|
65
|
-
|
|
94
|
+
if (isOperationStatus) {
|
|
95
|
+
body += `#[derive(Default, Deserialize, SafeDebug)]\n`;
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
body += helpers.annotationDerive(!hasXmlAddlProps, model.flags !== rust.ModelFlags.Unspecified ? 'Default' : '');
|
|
99
|
+
}
|
|
66
100
|
if ((model.flags & rust.ModelFlags.Output) === rust.ModelFlags.Output && (model.flags & rust.ModelFlags.Input) === 0) {
|
|
67
101
|
// output-only models get the non_exhaustive annotation
|
|
68
102
|
body += helpers.AnnotationNonExhaustive;
|
|
@@ -86,7 +120,9 @@ function emitModelDefinitions(crate, context) {
|
|
|
86
120
|
else if (discriminator) {
|
|
87
121
|
// find the matching DU member for this model
|
|
88
122
|
let duMember;
|
|
89
|
-
for (const union of
|
|
123
|
+
for (const union of module.unions) {
|
|
124
|
+
if (union.kind !== 'discriminatedUnion')
|
|
125
|
+
continue;
|
|
90
126
|
for (const member of union.members) {
|
|
91
127
|
if (member.type === model) {
|
|
92
128
|
duMember = member;
|
|
@@ -130,7 +166,7 @@ function emitModelDefinitions(crate, context) {
|
|
|
130
166
|
// check for custom deserialize_with. if present, it will override what we'd normally emit
|
|
131
167
|
const deserializeWith = field.customizations.find((each) => each.kind === 'deserializeWith');
|
|
132
168
|
if (unwrappedType.kind === 'encodedBytes' || unwrappedType.kind === 'enumValue' || unwrappedType.kind === 'literal' || unwrappedType.kind === 'offsetDateTime' || encodeAsString(unwrappedType)) {
|
|
133
|
-
addSerDeHelper(field, serdeParams, bodyFormat, use, deserializeWith);
|
|
169
|
+
addSerDeHelper(module, field, serdeParams, bodyFormat, use, deserializeWith);
|
|
134
170
|
}
|
|
135
171
|
else if (bodyFormat === 'xml' && utils.unwrapOption(field.type).kind === 'Vec' && field.xmlKind !== 'unwrappedList') {
|
|
136
172
|
// this is a wrapped list so we need a helper type for serde
|
|
@@ -187,10 +223,11 @@ function emitModelDefinitions(crate, context) {
|
|
|
187
223
|
* returns serde helpers for public models.
|
|
188
224
|
* if no helpers are required, undefined is returned.
|
|
189
225
|
*
|
|
226
|
+
* @param module the module being processed
|
|
190
227
|
* @returns the model serde helpers content or undefined
|
|
191
228
|
*/
|
|
192
|
-
function emitModelsSerde() {
|
|
193
|
-
const use = new Use('modelsOther');
|
|
229
|
+
function emitModelsSerde(module) {
|
|
230
|
+
const use = new Use(module, 'modelsOther');
|
|
194
231
|
const serdeHelpers = emitSerDeHelpers(use);
|
|
195
232
|
if (!serdeHelpers) {
|
|
196
233
|
// no helpers
|
|
@@ -209,15 +246,17 @@ function emitModelsSerde() {
|
|
|
209
246
|
* returns any trait impls for public models.
|
|
210
247
|
* if no helpers are required, undefined is returned.
|
|
211
248
|
*
|
|
212
|
-
* @param
|
|
213
|
-
* @param context the context for the provided
|
|
249
|
+
* @param module the module for which to emit model serde helpers
|
|
250
|
+
* @param context the context for the provided module
|
|
214
251
|
* @returns the model serde helpers content or undefined
|
|
215
252
|
*/
|
|
216
|
-
function emitModelImpls(
|
|
217
|
-
const use = new Use('modelsOther');
|
|
253
|
+
function emitModelImpls(module, context) {
|
|
254
|
+
const use = new Use(module, 'modelsOther');
|
|
218
255
|
const entries = new Array();
|
|
219
256
|
// emit From<model> for tagged enum types
|
|
220
|
-
for (const union of
|
|
257
|
+
for (const union of module.unions) {
|
|
258
|
+
if (union.kind !== 'discriminatedUnion')
|
|
259
|
+
continue;
|
|
221
260
|
const indent = new helpers.indentation();
|
|
222
261
|
use.addForType(union);
|
|
223
262
|
for (const member of union.members) {
|
|
@@ -231,7 +270,7 @@ function emitModelImpls(crate, context) {
|
|
|
231
270
|
}
|
|
232
271
|
}
|
|
233
272
|
// emit TryFrom as required
|
|
234
|
-
for (const model of
|
|
273
|
+
for (const model of module.models) {
|
|
235
274
|
if (model.kind === 'marker') {
|
|
236
275
|
// no impls for marker types
|
|
237
276
|
continue;
|
|
@@ -243,6 +282,11 @@ function emitModelImpls(crate, context) {
|
|
|
243
282
|
use.addForType(model);
|
|
244
283
|
entries.push(forReq);
|
|
245
284
|
}
|
|
285
|
+
const forErr = context.getTryFromForError(model, use);
|
|
286
|
+
if (forErr) {
|
|
287
|
+
use.addForType(model);
|
|
288
|
+
entries.push(forErr);
|
|
289
|
+
}
|
|
246
290
|
const pageImpl = context.getPageImplForType(model, use);
|
|
247
291
|
if (pageImpl) {
|
|
248
292
|
use.addForType(model);
|
|
@@ -382,16 +426,17 @@ function getXMLListWrapper(field) {
|
|
|
382
426
|
* emits helper types for XML lists or returns undefined
|
|
383
427
|
* if no XMLListWrappers are required.
|
|
384
428
|
*
|
|
429
|
+
* @param module the module being processed
|
|
385
430
|
* @returns the helper models for wrapped XML lists or undefined
|
|
386
431
|
*/
|
|
387
|
-
function emitXMLListWrappers() {
|
|
432
|
+
function emitXMLListWrappers(module) {
|
|
388
433
|
if (xmlListWrappers.size === 0) {
|
|
389
434
|
return undefined;
|
|
390
435
|
}
|
|
391
436
|
const wrapperTypes = Array.from(xmlListWrappers.values());
|
|
392
437
|
wrapperTypes.sort((a, b) => { return helpers.sortAscending(a.name, b.name); });
|
|
393
438
|
const indent = new helpers.indentation();
|
|
394
|
-
const use = new Use('modelsOther');
|
|
439
|
+
const use = new Use(module, 'modelsOther');
|
|
395
440
|
use.add('serde', 'Deserialize', 'Deserializer', 'Serialize', 'Serializer');
|
|
396
441
|
let body = '';
|
|
397
442
|
for (const wrapperType of wrapperTypes) {
|
|
@@ -440,13 +485,14 @@ const serdeHelpersForXmlAddlProps = new Map();
|
|
|
440
485
|
* defines serde helpers for encodedBytes and offsetDateTime types.
|
|
441
486
|
* any other type will cause this function to throw.
|
|
442
487
|
*
|
|
488
|
+
* @param module the module being processed
|
|
443
489
|
* @param field the model field for which to build serde helpers
|
|
444
490
|
* @param serdeParams the params that will be passed to the serde annotation
|
|
445
491
|
* @param format the (de)serialization format of the data
|
|
446
492
|
* @param use the use statement builder currently in scope
|
|
447
493
|
* @param deserializeWith optional custom deserializer to use in lieu of the emitted variant
|
|
448
494
|
*/
|
|
449
|
-
function addSerDeHelper(field, serdeParams, format, use, deserializeWith) {
|
|
495
|
+
function addSerDeHelper(module, field, serdeParams, format, use, deserializeWith) {
|
|
450
496
|
const unwrapped = helpers.unwrapType(field.type);
|
|
451
497
|
switch (unwrapped.kind) {
|
|
452
498
|
case 'encodedBytes':
|
|
@@ -502,7 +548,7 @@ function addSerDeHelper(field, serdeParams, format, use, deserializeWith) {
|
|
|
502
548
|
// we can reuse identical helpers across model types
|
|
503
549
|
if (!serdeHelpers.has(name)) {
|
|
504
550
|
serdeHelpers.set(name, (indent) => {
|
|
505
|
-
const modUse = new Use('modelsOther');
|
|
551
|
+
const modUse = new Use(module, 'modelsOther');
|
|
506
552
|
let modContent = `pub mod ${name} {\n`;
|
|
507
553
|
modContent += `${indent.get()}#![allow(clippy::type_complexity)]\n`;
|
|
508
554
|
const deserialize = deserializeWith ? '' : `${buildDeserialize(indent, field.type, modUse)}\n`;
|