@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.
Files changed (76) hide show
  1. package/dist/src/codegen/clients.d.ts +4 -4
  2. package/dist/src/codegen/clients.d.ts.map +1 -1
  3. package/dist/src/codegen/clients.js +167 -67
  4. package/dist/src/codegen/clients.js.map +1 -1
  5. package/dist/src/codegen/codeGenerator.d.ts +6 -0
  6. package/dist/src/codegen/codeGenerator.d.ts.map +1 -1
  7. package/dist/src/codegen/codeGenerator.js +112 -32
  8. package/dist/src/codegen/codeGenerator.js.map +1 -1
  9. package/dist/src/codegen/context.d.ts +10 -0
  10. package/dist/src/codegen/context.d.ts.map +1 -1
  11. package/dist/src/codegen/context.js +57 -15
  12. package/dist/src/codegen/context.js.map +1 -1
  13. package/dist/src/codegen/docTests.d.ts +1 -2
  14. package/dist/src/codegen/docTests.d.ts.map +1 -1
  15. package/dist/src/codegen/docTests.js +13 -3
  16. package/dist/src/codegen/docTests.js.map +1 -1
  17. package/dist/src/codegen/enums.d.ts +4 -4
  18. package/dist/src/codegen/enums.d.ts.map +1 -1
  19. package/dist/src/codegen/enums.js +21 -21
  20. package/dist/src/codegen/enums.js.map +1 -1
  21. package/dist/src/codegen/headerTraits.d.ts +2 -2
  22. package/dist/src/codegen/headerTraits.d.ts.map +1 -1
  23. package/dist/src/codegen/headerTraits.js +17 -9
  24. package/dist/src/codegen/headerTraits.js.map +1 -1
  25. package/dist/src/codegen/helpers.d.ts +12 -3
  26. package/dist/src/codegen/helpers.d.ts.map +1 -1
  27. package/dist/src/codegen/helpers.js +19 -13
  28. package/dist/src/codegen/helpers.js.map +1 -1
  29. package/dist/src/codegen/lib.d.ts +3 -1
  30. package/dist/src/codegen/lib.d.ts.map +1 -1
  31. package/dist/src/codegen/lib.js +5 -1
  32. package/dist/src/codegen/lib.js.map +1 -1
  33. package/dist/src/codegen/mod.d.ts +9 -2
  34. package/dist/src/codegen/mod.d.ts.map +1 -1
  35. package/dist/src/codegen/mod.js +25 -9
  36. package/dist/src/codegen/mod.js.map +1 -1
  37. package/dist/src/codegen/models.d.ts +4 -4
  38. package/dist/src/codegen/models.d.ts.map +1 -1
  39. package/dist/src/codegen/models.js +76 -30
  40. package/dist/src/codegen/models.js.map +1 -1
  41. package/dist/src/codegen/unions.d.ts +4 -4
  42. package/dist/src/codegen/unions.d.ts.map +1 -1
  43. package/dist/src/codegen/unions.js +71 -45
  44. package/dist/src/codegen/unions.js.map +1 -1
  45. package/dist/src/codegen/use.d.ts +4 -2
  46. package/dist/src/codegen/use.d.ts.map +1 -1
  47. package/dist/src/codegen/use.js +22 -26
  48. package/dist/src/codegen/use.js.map +1 -1
  49. package/dist/src/codemodel/client.d.ts +30 -15
  50. package/dist/src/codemodel/client.d.ts.map +1 -1
  51. package/dist/src/codemodel/client.js +11 -7
  52. package/dist/src/codemodel/client.js.map +1 -1
  53. package/dist/src/codemodel/crate.d.ts +42 -12
  54. package/dist/src/codemodel/crate.d.ts.map +1 -1
  55. package/dist/src/codemodel/crate.js +21 -46
  56. package/dist/src/codemodel/crate.js.map +1 -1
  57. package/dist/src/codemodel/types.d.ts +60 -34
  58. package/dist/src/codemodel/types.d.ts.map +1 -1
  59. package/dist/src/codemodel/types.js +26 -10
  60. package/dist/src/codemodel/types.js.map +1 -1
  61. package/dist/src/emitter.d.ts.map +1 -1
  62. package/dist/src/emitter.js +40 -12
  63. package/dist/src/emitter.js.map +1 -1
  64. package/dist/src/lib.d.ts +2 -0
  65. package/dist/src/lib.d.ts.map +1 -1
  66. package/dist/src/lib.js +6 -0
  67. package/dist/src/lib.js.map +1 -1
  68. package/dist/src/tcgcadapter/adapter.d.ts +75 -13
  69. package/dist/src/tcgcadapter/adapter.d.ts.map +1 -1
  70. package/dist/src/tcgcadapter/adapter.js +655 -173
  71. package/dist/src/tcgcadapter/adapter.js.map +1 -1
  72. package/dist/src/utils/utils.d.ts +7 -4
  73. package/dist/src/utils/utils.d.ts.map +1 -1
  74. package/dist/src/utils/utils.js +25 -23
  75. package/dist/src/utils/utils.js.map +1 -1
  76. 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.Payload | rust.ResponseHeadersTrait | rust.Type, withLifetime?: 'default' | 'anonymous' | 'omit'): string;
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.Payload | rust.Type): rust.Type;
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: Exclude<rust.PayloadFormatType, 'NoFormat'>): ModelFormat;
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":"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"}
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) Rust Code Generator.`;
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
- switch (type.content.kind) {
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":"AAOA;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAOlC"}
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"}
@@ -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;AAExC;;;;GAIG;AACH,MAAM,UAAU,SAAS;IACvB,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,OAAO,OAAO,CAAC;AACjB,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 crate the crate for which to emit the mod.rs file
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(crate: rust.Crate): string;
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,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CA6B5D;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAI9D"}
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"}
@@ -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 crate the crate for which to emit the mod.rs file
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(crate) {
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 (crate.clients.length > 0) {
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
- else if (crate.enums.length > 0 || crate.models.length > 0 || crate.unions.length > 0) {
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 (crate.clients.length > 0) {
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 crate.clients) {
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
- content += `pub use clients::{${clientsAndClientOptions.join(', ')}};\n`;
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,KAAiB;IAClD,IAAI,OAAO,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IACxC,MAAM,YAAY,GAAG,+FAA+F,CAAA;IACpH,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,qDAAqD,CAAC;QACjE,OAAO,IAAI,oBAAoB,CAAC;QAChC,iDAAiD;QACjD,OAAO,IAAI,YAAY,CAAC;IAC1B,CAAC;SAAM,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxF,OAAO,IAAI,YAAY,CAAC;IAC1B,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,iFAAiF;QACjF,MAAM,uBAAuB,GAAG,IAAI,KAAK,EAAU,CAAC;QACpD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACnC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACzB,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAE1C,iFAAiF;gBACjF,IAAI,MAAM,CAAC,aAAa,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;oBAC9C,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvE,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,qBAAqB,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC3E,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,OAAsB;IACpD,mEAAmE;IACnE,OAAO,OAAO,CAAC,eAAe,EAAE;UAC5B,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,uCAAuC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;AACjJ,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
- * crate contains no model types.
17
+ * module contains no model types.
18
18
  *
19
- * @param crate the crate for which to emit models
20
- * @param context the context for the provided crate
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(crate: rust.Crate, context: Context): Models;
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,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAWtE"}
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
- * crate contains no model types.
12
+ * module contains no model types.
13
13
  *
14
- * @param crate the crate for which to emit models
15
- * @param context the context for the provided crate
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(crate, context) {
19
- if (crate.models.length === 0) {
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(crate, context),
24
- serde: emitModelsSerde(),
25
- impls: emitModelImpls(crate, context),
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 crate the crate for which to emit models
33
- * @param context the context for the provided crate
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(crate, context) {
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 crate.models) {
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', 'Serialize');
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
- body += helpers.annotationDerive(!hasXmlAddlProps, model.flags !== rust.ModelFlags.Unspecified ? 'Default' : '');
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 crate.unions) {
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 crate the crate for which to emit model serde helpers
213
- * @param context the context for the provided crate
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(crate, context) {
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 crate.unions) {
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 crate.models) {
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`;