@azure-tools/typespec-rust 0.1.0 → 0.3.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 (75) hide show
  1. package/dist/src/codegen/cargotoml.d.ts +6 -0
  2. package/dist/src/codegen/cargotoml.d.ts.map +1 -1
  3. package/dist/src/codegen/cargotoml.js +6 -1
  4. package/dist/src/codegen/cargotoml.js.map +1 -1
  5. package/dist/src/codegen/clients.d.ts +19 -2
  6. package/dist/src/codegen/clients.d.ts.map +1 -1
  7. package/dist/src/codegen/clients.js +489 -250
  8. package/dist/src/codegen/clients.js.map +1 -1
  9. package/dist/src/codegen/codeGenerator.d.ts +29 -6
  10. package/dist/src/codegen/codeGenerator.d.ts.map +1 -1
  11. package/dist/src/codegen/codeGenerator.js +64 -25
  12. package/dist/src/codegen/codeGenerator.js.map +1 -1
  13. package/dist/src/codegen/context.d.ts +41 -0
  14. package/dist/src/codegen/context.d.ts.map +1 -1
  15. package/dist/src/codegen/context.js +94 -15
  16. package/dist/src/codegen/context.js.map +1 -1
  17. package/dist/src/codegen/enums.d.ts +9 -1
  18. package/dist/src/codegen/enums.d.ts.map +1 -1
  19. package/dist/src/codegen/enums.js +34 -20
  20. package/dist/src/codegen/enums.js.map +1 -1
  21. package/dist/src/codegen/helpers.d.ts +116 -2
  22. package/dist/src/codegen/helpers.d.ts.map +1 -1
  23. package/dist/src/codegen/helpers.js +148 -18
  24. package/dist/src/codegen/helpers.js.map +1 -1
  25. package/dist/src/codegen/lib.d.ts +7 -1
  26. package/dist/src/codegen/lib.d.ts.map +1 -1
  27. package/dist/src/codegen/lib.js +10 -5
  28. package/dist/src/codegen/lib.js.map +1 -1
  29. package/dist/src/codegen/mod.d.ts +6 -1
  30. package/dist/src/codegen/mod.d.ts.map +1 -1
  31. package/dist/src/codegen/mod.js +9 -10
  32. package/dist/src/codegen/mod.js.map +1 -1
  33. package/dist/src/codegen/models.d.ts +20 -1
  34. package/dist/src/codegen/models.d.ts.map +1 -1
  35. package/dist/src/codegen/models.js +250 -13
  36. package/dist/src/codegen/models.js.map +1 -1
  37. package/dist/src/codegen/use.d.ts +32 -0
  38. package/dist/src/codegen/use.d.ts.map +1 -1
  39. package/dist/src/codegen/use.js +42 -15
  40. package/dist/src/codegen/use.js.map +1 -1
  41. package/dist/src/codemodel/client.d.ts +150 -11
  42. package/dist/src/codemodel/client.d.ts.map +1 -1
  43. package/dist/src/codemodel/client.js +60 -17
  44. package/dist/src/codemodel/client.js.map +1 -1
  45. package/dist/src/codemodel/crate.d.ts +33 -0
  46. package/dist/src/codemodel/crate.d.ts.map +1 -1
  47. package/dist/src/codemodel/crate.js +17 -0
  48. package/dist/src/codemodel/crate.js.map +1 -1
  49. package/dist/src/codemodel/method.d.ts +17 -0
  50. package/dist/src/codemodel/method.d.ts.map +1 -1
  51. package/dist/src/codemodel/types.d.ts +152 -24
  52. package/dist/src/codemodel/types.d.ts.map +1 -1
  53. package/dist/src/codemodel/types.js +39 -25
  54. package/dist/src/codemodel/types.js.map +1 -1
  55. package/dist/src/emitter.d.ts +5 -0
  56. package/dist/src/emitter.d.ts.map +1 -1
  57. package/dist/src/emitter.js +36 -23
  58. package/dist/src/emitter.js.map +1 -1
  59. package/dist/src/lib.d.ts +2 -0
  60. package/dist/src/lib.d.ts.map +1 -1
  61. package/dist/src/lib.js +6 -1
  62. package/dist/src/lib.js.map +1 -1
  63. package/dist/src/tcgcadapter/adapter.d.ts +73 -1
  64. package/dist/src/tcgcadapter/adapter.d.ts.map +1 -1
  65. package/dist/src/tcgcadapter/adapter.js +342 -81
  66. package/dist/src/tcgcadapter/adapter.js.map +1 -1
  67. package/dist/src/tcgcadapter/helpers.d.ts +18 -0
  68. package/dist/src/tcgcadapter/helpers.d.ts.map +1 -1
  69. package/dist/src/tcgcadapter/helpers.js +23 -2
  70. package/dist/src/tcgcadapter/helpers.js.map +1 -1
  71. package/dist/src/tcgcadapter/naming.d.ts +8 -0
  72. package/dist/src/tcgcadapter/naming.d.ts.map +1 -1
  73. package/dist/src/tcgcadapter/naming.js +8 -5
  74. package/dist/src/tcgcadapter/naming.js.map +1 -1
  75. package/package.json +21 -23
@@ -1 +1 @@
1
- {"version":3,"file":"clients.js","sourceRoot":"","sources":["../../../src/codegen/clients.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clients.js","sourceRoot":"","sources":["../../../src/codegen/clients.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,37 @@
1
- import { ClientFiles } from './clients.js';
2
1
  import * as rust from '../codemodel/index.js';
2
+ /** a file to emit */
3
+ export interface File {
4
+ /** the name of the file. can contain sub-directories */
5
+ readonly name: string;
6
+ /** the contents of the file */
7
+ readonly content: string;
8
+ }
9
+ /** CodeGenerator exposes the APIs for obtaining generated code content */
3
10
  export declare class CodeGenerator {
4
11
  private readonly context;
5
12
  private readonly crate;
13
+ /**
14
+ * instantiates a new CodeGenerator instance for the provided crate
15
+ * @param crate the Rust crate for which to generate code
16
+ */
6
17
  constructor(crate: rust.Crate);
18
+ /**
19
+ * generates a Cargo.toml file
20
+ *
21
+ * @returns the contents for the Cargo.toml file
22
+ */
7
23
  emitCargoToml(): string;
8
- emitClients(): Array<ClientFiles>;
9
- emitEnums(): string;
10
- emitLib(): string;
11
- emitMod(): string;
12
- emitModels(): string;
24
+ /**
25
+ * generates the lib.rs file for crate
26
+ *
27
+ * @returns the content for lib.rs
28
+ */
29
+ emitLibRs(): string;
30
+ /**
31
+ * generates all clients, models, and any helper content
32
+ *
33
+ * @returns an array of files to emit
34
+ */
35
+ emitContent(): Array<File>;
13
36
  }
14
37
  //# sourceMappingURL=codeGenerator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"codeGenerator.d.ts","sourceRoot":"","sources":["../../../src/codegen/codeGenerator.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAe,MAAM,cAAc,CAAC;AAOxD,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAG9C,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;gBAEvB,KAAK,EAAE,IAAI,CAAC,KAAK;IAM7B,aAAa,IAAI,MAAM;IAMvB,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC;IAMjC,SAAS,IAAI,MAAM;IAKnB,OAAO,IAAI,MAAM;IAKjB,OAAO,IAAI,MAAM;IAMjB,UAAU,IAAI,MAAM;CAGrB"}
1
+ {"version":3,"file":"codeGenerator.d.ts","sourceRoot":"","sources":["../../../src/codegen/codeGenerator.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAE9C,qBAAqB;AACrB,MAAM,WAAW,IAAI;IACnB,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,+BAA+B;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,0EAA0E;AAC1E,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IAEnC;;;OAGG;gBACS,KAAK,EAAE,IAAI,CAAC,KAAK;IAK7B;;;;OAIG;IACH,aAAa,IAAI,MAAM;IAIvB;;;;OAIG;IACH,SAAS,IAAI,MAAM;IAInB;;;;OAIG;IACH,WAAW,IAAI,KAAK,CAAC,IAAI,CAAC;CA8C3B"}
@@ -6,41 +6,80 @@ import { emitCargoToml } from './cargotoml.js';
6
6
  import { emitClients } from './clients.js';
7
7
  import { Context } from './context.js';
8
8
  import { emitEnums } from './enums.js';
9
- import { emitLib } from './lib.js';
10
- import { emitMod } from './mod.js';
9
+ import { emitLibRs } from './lib.js';
10
+ import { emitModRs } from './mod.js';
11
11
  import { emitModels } from './models.js';
12
- // CodeGenerator exposes the APIs for obtaining generated code content.
12
+ import * as rust from '../codemodel/index.js';
13
+ /** CodeGenerator exposes the APIs for obtaining generated code content */
13
14
  export class CodeGenerator {
15
+ /**
16
+ * instantiates a new CodeGenerator instance for the provided crate
17
+ * @param crate the Rust crate for which to generate code
18
+ */
14
19
  constructor(crate) {
15
20
  this.context = new Context(crate);
16
21
  this.crate = crate;
17
22
  }
18
- // returns the contents for the Cargo.toml file
23
+ /**
24
+ * generates a Cargo.toml file
25
+ *
26
+ * @returns the contents for the Cargo.toml file
27
+ */
19
28
  emitCargoToml() {
20
29
  return emitCargoToml(this.crate);
21
30
  }
22
- // returns an array of all client files and their content.
23
- // if there are no clients, the array will be empty.
24
- emitClients() {
25
- return emitClients(this.crate);
31
+ /**
32
+ * generates the lib.rs file for crate
33
+ *
34
+ * @returns the content for lib.rs
35
+ */
36
+ emitLibRs() {
37
+ return emitLibRs(this.crate);
26
38
  }
27
- // returns the content for enums.rs
28
- // if there are no enums, the empty string is returned.
29
- emitEnums() {
30
- return emitEnums(this.crate, this.context);
31
- }
32
- // returns the content for lib.rs
33
- emitLib() {
34
- return emitLib(this.crate);
35
- }
36
- // returns the content for mod.rs
37
- emitMod() {
38
- return emitMod(this.crate);
39
- }
40
- // returns the content for models.rs
41
- // if there are no models, the empty string is returned.
42
- emitModels() {
43
- return emitModels(this.crate, this.context);
39
+ /**
40
+ * generates all clients, models, and any helper content
41
+ *
42
+ * @returns an array of files to emit
43
+ */
44
+ emitContent() {
45
+ const clientsModRS = new Array();
46
+ const generatedModRS = new Array();
47
+ const files = new Array();
48
+ const clientsSubDir = 'clients';
49
+ const clients = emitClients(this.crate, clientsSubDir);
50
+ if (clients) {
51
+ clientsModRS.push(...clients.modules);
52
+ generatedModRS.push(new rust.Module('clients', true));
53
+ files.push(...clients.clients);
54
+ }
55
+ const enums = emitEnums(this.crate, this.context);
56
+ if (enums) {
57
+ generatedModRS.push(new rust.Module('enums', true));
58
+ files.push({ name: 'enums.rs', content: enums });
59
+ }
60
+ const models = emitModels(this.crate, this.context);
61
+ if (models.public) {
62
+ generatedModRS.push(new rust.Module('models', true));
63
+ files.push({ name: 'models.rs', content: models.public });
64
+ }
65
+ if (models.serde) {
66
+ generatedModRS.push(new rust.Module('models_serde', true));
67
+ files.push({ name: 'models_serde.rs', content: models.serde });
68
+ }
69
+ if (models.internal) {
70
+ clientsModRS.push(new rust.Module('internal_models', false));
71
+ files.push({ name: `${clientsSubDir}/internal_models.rs`, content: models.internal });
72
+ }
73
+ if (models.xmlHelpers) {
74
+ generatedModRS.push(new rust.Module('xml_helpers', false));
75
+ files.push({ name: 'xml_helpers.rs', content: models.xmlHelpers });
76
+ }
77
+ if (clientsModRS.length > 0) {
78
+ files.push({ name: `${clientsSubDir}/mod.rs`, content: emitModRs(clientsModRS) });
79
+ }
80
+ // there will always be something in the generated/mod.rs file
81
+ files.push({ name: 'mod.rs', content: emitModRs(generatedModRS) });
82
+ return files;
44
83
  }
45
84
  }
46
85
  //# sourceMappingURL=codeGenerator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"codeGenerator.js","sourceRoot":"","sources":["../../../src/codegen/codeGenerator.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAe,WAAW,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,uEAAuE;AACvE,MAAM,OAAO,aAAa;IAIxB,YAAY,KAAiB;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,+CAA+C;IAC/C,aAAa;QACX,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,0DAA0D;IAC1D,oDAAoD;IACpD,WAAW;QACT,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,mCAAmC;IACnC,uDAAuD;IACvD,SAAS;QACP,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,iCAAiC;IACjC,OAAO;QACL,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,iCAAiC;IACjC,OAAO;QACL,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,oCAAoC;IACpC,wDAAwD;IACxD,UAAU;QACR,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;CACF"}
1
+ {"version":3,"file":"codeGenerator.js","sourceRoot":"","sources":["../../../src/codegen/codeGenerator.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,51 @@
1
1
  import { Use } from './use.js';
2
2
  import * as rust from '../codemodel/index.js';
3
+ /**
4
+ * Context contains contextual information about how types are used.
5
+ * It's an implementation detail of CodeGenerator and isn't intended
6
+ * for use outside of that class.
7
+ */
3
8
  export declare class Context {
9
+ private readonly bodyFormatForModels;
4
10
  private readonly tryFromForRequestTypes;
5
11
  private readonly tryFromResponseTypes;
12
+ /**
13
+ * instantiates a new Context for the provided crate
14
+ *
15
+ * @param crate the crate for which the context will be constructed
16
+ */
6
17
  constructor(crate: rust.Crate);
18
+ /**
19
+ * returns the impl TryFrom<T> for RequestContent<T> where T is type.
20
+ * if no impl is required, it returns the empty string.
21
+ *
22
+ * @param type the type for which to implement TryFrom
23
+ * @param use the use statement builder currently in scope
24
+ * @returns the impl TryFrom<T> block for type or the empty string
25
+ */
7
26
  getTryFromForRequestContent(type: rust.Type, use: Use): string;
27
+ /**
28
+ * returns the impl TryFrom<Response<T>> for T where T is type.
29
+ * if no impl is required, it returns the empty string.
30
+ *
31
+ * @param type the type for which to implement TryFrom
32
+ * @param use the use statement builder currently in scope
33
+ * @returns the impl TryFrom<T> block for type or the empty string
34
+ */
8
35
  getTryFromResponseForType(type: rust.Type, use: Use): string;
36
+ /**
37
+ * returns the body format for the provided model
38
+ *
39
+ * @param model the model for which to determine the format
40
+ * @returns the body format
41
+ */
42
+ getModelBodyFormat(model: rust.Model): rust.BodyFormat;
43
+ /**
44
+ * verifies that the body format is JSON or XML as those are
45
+ * the only formats requiring impl TryFrom<T> helpers.
46
+ *
47
+ * @param format the format to inspect
48
+ */
49
+ private validateBodyFormat;
9
50
  }
10
51
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/codegen/context.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAK9C,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAuC;IAC9E,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAuC;gBAEhE,KAAK,EAAE,IAAI,CAAC,KAAK;IA+B7B,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM;IAoB9D,yBAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM;CAoB7D"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/codegen/context.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAE9C;;;;GAIG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA0C;IAC9E,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAsC;IAC7E,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAsC;IAE3E;;;;OAIG;gBACS,KAAK,EAAE,IAAI,CAAC,KAAK;IA2D7B;;;;;;;OAOG;IACH,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM;IAoB9D;;;;;;;OAOG;IACH,yBAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM;IAsB5D;;;;;OAKG;IACH,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU;IAQtD;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;CAS3B"}
@@ -3,13 +3,39 @@
3
3
  * Licensed under the MIT License. See License.txt in the project root for license information.
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  import * as helpers from './helpers.js';
6
- // Context contains contextual information about how types are used.
7
- // It's an implementation detail of CodeGenerator and isn't intended
8
- // for use outside of that class.
6
+ /**
7
+ * Context contains contextual information about how types are used.
8
+ * It's an implementation detail of CodeGenerator and isn't intended
9
+ * for use outside of that class.
10
+ */
9
11
  export class Context {
12
+ /**
13
+ * instantiates a new Context for the provided crate
14
+ *
15
+ * @param crate the crate for which the context will be constructed
16
+ */
10
17
  constructor(crate) {
18
+ this.bodyFormatForModels = new Map();
11
19
  this.tryFromForRequestTypes = new Map();
12
20
  this.tryFromResponseTypes = new Map();
21
+ const recursiveAddBodyFormat = (type, format) => {
22
+ type = helpers.unwrapType(type);
23
+ if (type.kind !== 'model') {
24
+ return;
25
+ }
26
+ const existingFormat = this.bodyFormatForModels.get(type);
27
+ if (existingFormat) {
28
+ if (existingFormat === format) {
29
+ // already processed this model
30
+ return;
31
+ }
32
+ throw new Error(`found conflicting body formats for model ${type.name}`);
33
+ }
34
+ this.bodyFormatForModels.set(type, format);
35
+ for (const field of type.fields) {
36
+ recursiveAddBodyFormat(field.type, format);
37
+ }
38
+ };
13
39
  // enumerate all client methods, looking for enum and model
14
40
  // params/responses and their wire format (JSON/XML etc).
15
41
  for (const client of crate.clients) {
@@ -21,49 +47,74 @@ export class Context {
21
47
  // or Vec<T> where T is an enum or model type.
22
48
  // https://github.com/Azure/typespec-rust/issues/65
23
49
  for (const param of method.params) {
24
- if (param.kind === 'body' && (param.type.type.kind === 'enum' || param.type.type.kind === 'model')) {
25
- this.tryFromForRequestTypes.set(helpers.getTypeDeclaration(param.type.type), param.type.format);
50
+ if (param.kind === 'body' || param.kind === 'partialBody') {
51
+ if (param.type.type.kind === 'enum' || param.type.type.kind === 'model') {
52
+ this.tryFromForRequestTypes.set(helpers.getTypeDeclaration(param.type.type), param.type.format);
53
+ }
54
+ recursiveAddBodyFormat(param.type.type, param.type.format);
26
55
  }
27
56
  }
28
- if (method.returns.type.kind === 'response' && (method.returns.type.type.kind === 'enum' || method.returns.type.type.kind === 'model')) {
57
+ if (method.returns.type.kind === 'response' && method.returns.type.type.kind !== 'unit') {
29
58
  if (!method.returns.type.format) {
30
59
  throw new Error(`method ${client.name}.${method.name} returns a body but no format was specified`);
31
60
  }
61
+ if (method.returns.type.type.kind === 'enum' || method.returns.type.type.kind === 'model') {
62
+ this.tryFromResponseTypes.set(helpers.getTypeDeclaration(method.returns.type.type), method.returns.type.format);
63
+ }
64
+ recursiveAddBodyFormat(method.returns.type.type, method.returns.type.format);
65
+ }
66
+ else if (method.returns.type.kind === 'pager') {
32
67
  this.tryFromResponseTypes.set(helpers.getTypeDeclaration(method.returns.type.type), method.returns.type.format);
68
+ recursiveAddBodyFormat(method.returns.type.type, method.returns.type.format);
33
69
  }
34
70
  }
35
71
  }
36
72
  }
37
- // returns the TryFrom<T> for RequestContent<T> where T is type.
38
- // if no impl is required, it returns the empty string.
73
+ /**
74
+ * returns the impl TryFrom<T> for RequestContent<T> where T is type.
75
+ * if no impl is required, it returns the empty string.
76
+ *
77
+ * @param type the type for which to implement TryFrom
78
+ * @param use the use statement builder currently in scope
79
+ * @returns the impl TryFrom<T> block for type or the empty string
80
+ */
39
81
  getTryFromForRequestContent(type, use) {
40
82
  const format = this.tryFromForRequestTypes.get(helpers.getTypeDeclaration(type));
41
83
  if (!format) {
42
84
  return '';
43
85
  }
44
- use.addType('azure_core', 'RequestContent');
86
+ this.validateBodyFormat(format);
87
+ use.addTypes('azure_core', ['RequestContent', 'Result']);
88
+ use.addType('typespec_client_core', `${format}::to_${format}`);
45
89
  const indent = new helpers.indentation();
46
90
  let content = `impl TryFrom<${helpers.getTypeDeclaration(type)}> for RequestContent<${helpers.getTypeDeclaration(type)}> {\n`;
47
91
  content += `${indent.get()}type Error = azure_core::Error;\n`;
48
- content += `${indent.get()}fn try_from(value: ${helpers.getTypeDeclaration(type)}) -> Result<Self, Self::Error> {\n`;
49
- content += `${indent.push().get()}Ok(RequestContent::from(serde_${format}::to_vec(&value)?))\n`;
92
+ content += `${indent.get()}fn try_from(value: ${helpers.getTypeDeclaration(type)}) -> Result<Self> {\n`;
93
+ content += `${indent.push().get()}RequestContent::try_from(to_${format}(&value)?)\n`;
50
94
  content += `${indent.pop().get()}}\n`;
51
95
  content += '}\n\n';
52
96
  return content;
53
97
  }
54
- // returns the TryFrom<Response<T>> for T where T is type.
55
- // if no impl is required, it returns the empty string.
98
+ /**
99
+ * returns the impl TryFrom<Response<T>> for T where T is type.
100
+ * if no impl is required, it returns the empty string.
101
+ *
102
+ * @param type the type for which to implement TryFrom
103
+ * @param use the use statement builder currently in scope
104
+ * @returns the impl TryFrom<T> block for type or the empty string
105
+ */
56
106
  getTryFromResponseForType(type, use) {
57
107
  const format = this.tryFromResponseTypes.get(helpers.getTypeDeclaration(type));
58
108
  if (!format) {
59
109
  return '';
60
110
  }
61
- use.addType('azure_core', 'Response');
111
+ this.validateBodyFormat(format);
112
+ use.addTypes('azure_core', ['Response', 'Result']);
62
113
  use.addType('async_std::task', 'block_on');
63
114
  const indent = new helpers.indentation();
64
115
  let content = `impl TryFrom<Response<${helpers.getTypeDeclaration(type)}>> for ${helpers.getTypeDeclaration(type)} {\n`;
65
116
  content += `${indent.get()}type Error = azure_core::Error;\n`;
66
- content += `${indent.get()}fn try_from(value: Response<${helpers.getTypeDeclaration(type)}>) -> Result<Self, Self::Error> {\n`;
117
+ content += `${indent.get()}fn try_from(value: Response<${helpers.getTypeDeclaration(type)}>) -> Result<Self> {\n`;
67
118
  content += `${indent.push().get()}let f = || value.into_body().${format}::<${helpers.getTypeDeclaration(type)}>();\n`;
68
119
  content += `${indent.get()}let r = block_on(f())?;\n`;
69
120
  content += `${indent.get()}Ok(r)\n`;
@@ -71,5 +122,33 @@ export class Context {
71
122
  content += '}\n\n';
72
123
  return content;
73
124
  }
125
+ /**
126
+ * returns the body format for the provided model
127
+ *
128
+ * @param model the model for which to determine the format
129
+ * @returns the body format
130
+ */
131
+ getModelBodyFormat(model) {
132
+ const bodyFormat = this.bodyFormatForModels.get(model);
133
+ if (!bodyFormat) {
134
+ throw new Error(`didn't find body format for model ${model.name}`);
135
+ }
136
+ return bodyFormat;
137
+ }
138
+ /**
139
+ * verifies that the body format is JSON or XML as those are
140
+ * the only formats requiring impl TryFrom<T> helpers.
141
+ *
142
+ * @param format the format to inspect
143
+ */
144
+ validateBodyFormat(format) {
145
+ switch (format) {
146
+ case 'json':
147
+ case 'xml':
148
+ return;
149
+ default:
150
+ throw new Error(`unexpected body format ${format}`);
151
+ }
152
+ }
74
153
  }
75
154
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/codegen/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/codegen/context.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,12 @@
1
1
  import { Context } from './context.js';
2
2
  import * as rust from '../codemodel/index.js';
3
- export declare function emitEnums(crate: rust.Crate, context: Context): string;
3
+ /**
4
+ * returns the emitted enum types, or undefined if the
5
+ * crate contains no enum types.
6
+ *
7
+ * @param crate the crate for which to emit enums
8
+ * @param context the context for the provided crate
9
+ * @returns the enum content or undefined
10
+ */
11
+ export declare function emitEnums(crate: rust.Crate, context: Context): string | undefined;
4
12
  //# sourceMappingURL=enums.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../../src/codegen/enums.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAG9C,wBAAgB,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CA+CrE"}
1
+ {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../../src/codegen/enums.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAE9C;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAuDjF"}
@@ -4,36 +4,50 @@
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  import * as helpers from './helpers.js';
6
6
  import { Use } from './use.js';
7
- // emits the enums.rs file for this crate
7
+ /**
8
+ * returns the emitted enum types, or undefined if the
9
+ * crate contains no enum types.
10
+ *
11
+ * @param crate the crate for which to emit enums
12
+ * @param context the context for the provided crate
13
+ * @returns the enum content or undefined
14
+ */
8
15
  export function emitEnums(crate, context) {
9
16
  if (crate.enums.length === 0) {
10
- return '';
17
+ return undefined;
11
18
  }
12
19
  const use = new Use('models');
13
- use.addTypes('serde', ['Deserialize', 'Serialize']);
14
- const indentation = new helpers.indentation();
20
+ // note that create_extensible_enum uses create_enum, so it will always be used
21
+ use.addType('typespec_client_core', 'create_enum');
22
+ const indent = new helpers.indentation();
15
23
  let body = '';
16
24
  for (const rustEnum of crate.enums) {
17
- body += helpers.formatDocComment(rustEnum.docs);
18
- // only derive Copy for fixed enums
19
- body += helpers.annotationDerive(!rustEnum.extensible ? 'Copy' : '', 'Eq', 'PartialEq');
20
- body += helpers.AnnotationNonExhaustive;
21
- body += `${helpers.emitPub(rustEnum.pub)}enum ${rustEnum.name} {\n`;
22
- for (const value of rustEnum.values) {
23
- body += helpers.formatDocComment(value.docs);
24
- if (value.name !== value.value) {
25
- // only emit the serde annotation when the names aren't equal
26
- body += `${indentation.get()}#[serde(rename = "${value.value}")]\n`;
27
- }
28
- body += `${indentation.get()}${value.name},\n`;
29
- }
25
+ let enumType = 'create_enum';
30
26
  if (rustEnum.extensible) {
31
- body += `${indentation.get()}#[serde(untagged)]\n`;
27
+ use.addType('typespec_client_core', 'create_extensible_enum');
28
+ enumType = 'create_extensible_enum';
29
+ }
30
+ body += `${enumType}!(\n`;
31
+ const docs = helpers.formatDocComment(rustEnum.docs);
32
+ if (docs.length > 0) {
33
+ body += `${indent.get()}#[doc = r#"${docs}"#]\n`;
34
+ }
35
+ body += `${indent.get()}${rustEnum.name},\n`;
36
+ for (let i = 0; i < rustEnum.values.length; ++i) {
37
+ const value = rustEnum.values[i];
38
+ const docs = helpers.formatDocComment(value.docs);
39
+ if (docs.length > 0) {
40
+ body += `${indent.get()}#[doc = r#"${docs}"#]\n`;
41
+ }
32
42
  // TODO: hard-coded String type
33
43
  // https://github.com/Azure/typespec-rust/issues/25
34
- body += `${indentation.get()}UnknownValue(String),\n`;
44
+ body += `${indent.get()}(${value.name}, "${value.value}")`;
45
+ if (i + 1 < rustEnum.values.length) {
46
+ body += ',';
47
+ }
48
+ body += '\n';
35
49
  }
36
- body += '}\n\n';
50
+ body += ');\n\n'; // end enum macro
37
51
  }
38
52
  // emit TryFrom as required
39
53
  for (const rustEnum of crate.enums) {