@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
@@ -4,42 +4,55 @@
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  import { CodeGenerator } from './codegen/codeGenerator.js';
6
6
  import { Adapter } from './tcgcadapter/adapter.js';
7
+ import { existsSync } from 'fs';
7
8
  import { mkdir, writeFile } from 'fs/promises';
8
9
  import * as path from 'path';
10
+ import { NoTarget } from '@typespec/compiler';
9
11
  import 'source-map-support/register.js';
12
+ /**
13
+ * entry point called by the tsp compiler
14
+ *
15
+ * @param context the emit context
16
+ */
10
17
  export async function $onEmit(context) {
11
18
  const adapter = await Adapter.create(context);
12
19
  const crate = adapter.tcgcToCrate();
13
20
  await mkdir(`${context.emitterOutputDir}/src`, { recursive: true });
14
21
  const codegen = new CodeGenerator(crate);
15
- // TODO: don't overwrite an existing Cargo.toml file
16
- // will likely need to merge existing Cargo.toml file with generated content
22
+ // don't overwrite an existing Cargo.toml file by default
23
+ // TODO: consider merging existing dependencies with emitted dependencies when overwriting
17
24
  // https://github.com/Azure/typespec-rust/issues/22
18
- await writeFile(`${context.emitterOutputDir}/Cargo.toml`, codegen.emitCargoToml());
25
+ const cargoTomlPath = `${context.emitterOutputDir}/Cargo.toml`;
26
+ if (existsSync(cargoTomlPath) && !context.options['overwrite-cargo-toml']) {
27
+ context.program.reportDiagnostic({
28
+ code: "FileAlreadyExists",
29
+ severity: "warning",
30
+ message: `skip overwriting file ${cargoTomlPath}`,
31
+ target: NoTarget,
32
+ });
33
+ }
34
+ else {
35
+ await writeFile(cargoTomlPath, codegen.emitCargoToml());
36
+ }
19
37
  // TODO: this will overwrite an existing lib.rs file.
20
38
  // we will likely need to support merging generated content with a preexisting lib.rs
21
39
  // https://github.com/Azure/typespec-rust/issues/20
22
- await writeFile(`${context.emitterOutputDir}/src/lib.rs`, codegen.emitLib());
23
- await writeToGeneratedDir(context.emitterOutputDir, 'mod.rs', codegen.emitMod());
24
- const models = codegen.emitModels();
25
- if (models.length > 0) {
26
- await writeToGeneratedDir(context.emitterOutputDir, 'models.rs', models);
27
- }
28
- const enums = codegen.emitEnums();
29
- if (enums.length > 0) {
30
- await writeToGeneratedDir(context.emitterOutputDir, 'enums.rs', enums);
31
- }
32
- const clientFiles = codegen.emitClients();
33
- for (const clientFile of clientFiles) {
34
- await writeToGeneratedDir(context.emitterOutputDir, clientFile.name, clientFile.content, 'clients');
40
+ await writeFile(`${context.emitterOutputDir}/src/lib.rs`, codegen.emitLibRs());
41
+ const files = codegen.emitContent();
42
+ for (const file of files) {
43
+ await writeToGeneratedDir(context.emitterOutputDir, file.name, file.content);
35
44
  }
36
45
  }
37
- async function writeToGeneratedDir(outDir, filename, content, subdir) {
38
- let srcGen = `${outDir}/src/generated`;
39
- if (subdir) {
40
- srcGen = path.join(srcGen, subdir);
41
- }
42
- await mkdir(srcGen, { recursive: true });
43
- await writeFile(`${srcGen}/${filename}`, content);
46
+ /**
47
+ *
48
+ * @param outDir the output directory provided by the tsp compiler
49
+ * @param filename the name of the file to write. can contain sub-directories
50
+ * @param content the contents of the file
51
+ */
52
+ async function writeToGeneratedDir(outDir, filename, content) {
53
+ const fullFilePath = path.join(outDir, 'src', 'generated', filename);
54
+ const fullDirPath = fullFilePath.substring(0, fullFilePath.lastIndexOf(path.sep));
55
+ await mkdir(fullDirPath, { recursive: true });
56
+ await writeFile(fullFilePath, content);
44
57
  }
45
58
  //# sourceMappingURL=emitter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/emitter.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,gCAAgC,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAwC;IACpE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAEpC,MAAM,KAAK,CAAC,GAAG,OAAO,CAAC,gBAAgB,MAAM,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;IAElE,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC;IAEzC,oDAAoD;IACpD,4EAA4E;IAC5E,mDAAmD;IACnD,MAAM,SAAS,CAAC,GAAG,OAAO,CAAC,gBAAgB,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAEnF,qDAAqD;IACrD,qFAAqF;IACrF,mDAAmD;IACnD,MAAM,SAAS,CAAC,GAAG,OAAO,CAAC,gBAAgB,aAAa,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAE7E,MAAM,mBAAmB,CAAC,OAAO,CAAC,gBAAgB,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAEjF,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IACpC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QACrB,MAAM,mBAAmB,CAAC,OAAO,CAAC,gBAAgB,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;KAC1E;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAClC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACpB,MAAM,mBAAmB,CAAC,OAAO,CAAC,gBAAgB,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;KACxE;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAC1C,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;QACpC,MAAM,mBAAmB,CAAC,OAAO,CAAC,gBAAgB,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;KACrG;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,MAAc,EAAE,QAAgB,EAAE,OAAe,EAAE,MAAe;IACnG,IAAI,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC;IACvC,IAAI,MAAM,EAAE;QACV,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACpC;IACD,MAAM,KAAK,CAAC,MAAM,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;IACvC,MAAM,SAAS,CAAC,GAAG,MAAM,IAAI,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/emitter.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAe,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,gCAAgC,CAAC;AAExC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAwC;IACpE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAEpC,MAAM,KAAK,CAAC,GAAG,OAAO,CAAC,gBAAgB,MAAM,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;IAElE,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC;IAEzC,yDAAyD;IACzD,0FAA0F;IAC1F,mDAAmD;IACnD,MAAM,aAAa,GAAG,GAAG,OAAO,CAAC,gBAAgB,aAAa,CAAC;IAC/D,IAAI,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,CAAC;QAC1E,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC;YAC/B,IAAI,EAAE,mBAAmB;YACzB,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,yBAAyB,aAAa,EAAE;YACjD,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,qDAAqD;IACrD,qFAAqF;IACrF,mDAAmD;IACnD,MAAM,SAAS,CAAC,GAAG,OAAO,CAAC,gBAAgB,aAAa,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAE/E,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,mBAAmB,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,mBAAmB,CAAC,MAAc,EAAE,QAAgB,EAAE,OAAe;IAClF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IACrE,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAClF,MAAM,KAAK,CAAC,WAAW,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;IAC5C,MAAM,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC"}
package/dist/src/lib.d.ts CHANGED
@@ -1,6 +1,8 @@
1
+ /** the public Rust emitter options */
1
2
  export interface RustEmitterOptions {
2
3
  'crate-name': string;
3
4
  'crate-version': string;
5
+ 'overwrite-cargo-toml': boolean;
4
6
  }
5
7
  export declare const $lib: import("@typespec/compiler").TypeSpecLibrary<{
6
8
  [code: string]: import("@typespec/compiler").DiagnosticMessages;
@@ -1 +1 @@
1
- {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB;AAoBD,eAAO,MAAM,IAAI;;6BAAgC,CAAC;AAClD,eAAO,MAAQ,gBAAgB;;;;mBAAE,iBAAiB,4BAAE,SAAS,wFAAS,CAAC"}
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAOA,sCAAsC;AACtC,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAwBD,eAAO,MAAM,IAAI;;6BAAgC,CAAC;AAElD,eAAO,MAAQ,gBAAgB;;;;mBAAE,iBAAiB,4BAAE,SAAS,wFAAS,CAAC"}
package/dist/src/lib.js CHANGED
@@ -9,8 +9,12 @@ const EmitterOptionsSchema = {
9
9
  properties: {
10
10
  'crate-name': { type: 'string', nullable: false },
11
11
  'crate-version': { type: 'string', nullable: false },
12
+ 'overwrite-cargo-toml': { type: 'boolean', nullable: false },
12
13
  },
13
- required: [],
14
+ required: [
15
+ 'crate-name',
16
+ 'crate-version',
17
+ ],
14
18
  };
15
19
  const libDef = {
16
20
  name: '@azure-tools/typespec-rust',
@@ -20,5 +24,6 @@ const libDef = {
20
24
  },
21
25
  };
22
26
  export const $lib = createTypeSpecLibrary(libDef);
27
+ /* eslint-disable-next-line @typescript-eslint/unbound-method */
23
28
  export const { reportDiagnostic, createStateSymbol, getTracer } = $lib;
24
29
  //# sourceMappingURL=lib.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,qBAAqB,EAAkB,MAAM,oBAAoB,CAAC;AAO3E,MAAM,oBAAoB,GAAuC;IAC/D,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,IAAI;IAC1B,UAAU,EAAE;QACV,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE;QACjD,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE;KACrD;IACD,QAAQ,EAAE,EAAE;CACb,CAAC;AAEF,MAAM,MAAM,GAAG;IACb,IAAI,EAAE,4BAA4B;IAClC,WAAW,EAAE,EAAE;IACf,OAAO,EAAE;QACP,OAAO,EAAsC,oBAAoB;KAClE;CACO,CAAC;AAEX,MAAM,CAAC,MAAM,IAAI,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,qBAAqB,EAAkB,MAAM,oBAAoB,CAAC;AAS3E,MAAM,oBAAoB,GAAuC;IAC/D,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,IAAI;IAC1B,UAAU,EAAE;QACV,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE;QACjD,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE;QACpD,sBAAsB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE;KAC7D;IACD,QAAQ,EAAE;QACR,YAAY;QACZ,eAAe;KAChB;CACF,CAAC;AAEF,MAAM,MAAM,GAAG;IACb,IAAI,EAAE,4BAA4B;IAClC,WAAW,EAAE,EAAE;IACf,OAAO,EAAE;QACP,OAAO,EAAsC,oBAAoB;KAClE;CACO,CAAC;AAEX,MAAM,CAAC,MAAM,IAAI,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAClD,gEAAgE;AAChE,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC"}
@@ -1,25 +1,97 @@
1
1
  import { EmitContext } from '@typespec/compiler';
2
2
  import { RustEmitterOptions } from '../lib.js';
3
3
  import * as rust from '../codemodel/index.js';
4
+ /** Adapter converts the tcgc code model to a Rust Crate */
4
5
  export declare class Adapter {
6
+ /**
7
+ * Creates an Adapter for the specified EmitContext.
8
+ *
9
+ * @param context the compiler context from which to create the Adapter
10
+ * @returns
11
+ */
5
12
  static create(context: EmitContext<RustEmitterOptions>): Promise<Adapter>;
6
13
  private readonly crate;
7
14
  private readonly ctx;
8
15
  private readonly types;
9
16
  private readonly clientMethodParams;
10
17
  private constructor();
18
+ /** performs all the steps to convert tcgc to a crate */
11
19
  tcgcToCrate(): rust.Crate;
20
+ /** converts all tcgc types to their Rust type equivalent */
12
21
  private adaptTypes;
22
+ /**
23
+ * converts a tcgc enum to a Rust enum
24
+ *
25
+ * @param sdkEnum the tcgc enum to convert
26
+ * @returns a Rust enum
27
+ */
13
28
  private getEnum;
29
+ /**
30
+ * converts a tcgc model to a Rust model
31
+ *
32
+ * @param model the tcgc model to convert
33
+ * @returns a Rust model
34
+ */
14
35
  private getModel;
36
+ /**
37
+ * converts a tcgc model property to a model field
38
+ *
39
+ * @param property the tcgc model property to convert
40
+ * @param isPubMod indicates if the model is public
41
+ * @returns a Rust model field
42
+ */
15
43
  private getModelField;
44
+ /** converts a tcgc type to a Rust type */
16
45
  private getType;
46
+ /** returns the Rust unit type */
17
47
  private getUnitType;
48
+ /**
49
+ * converts a tcgc constant to a Rust literal
50
+ *
51
+ * @param constType the constant to convert
52
+ * @returns a Rust literal
53
+ */
18
54
  private getLiteral;
55
+ /** converts all tcgc clients and their methods into Rust clients/methods */
19
56
  private adaptClients;
57
+ /**
58
+ * recursively converts a client and its methods.
59
+ * this simplifies the case for hierarchical clients.
60
+ *
61
+ * @param client the tcgc client to recursively convert
62
+ * @param parent contains the parent Rust client when converting a child client
63
+ * @returns a Rust client
64
+ */
20
65
  private recursiveAdaptClient;
66
+ /**
67
+ * converts a tcgc method to a Rust method for the specified client
68
+ *
69
+ * @param method the tcgc method to convert
70
+ * @param rustClient the client to which the method belongs
71
+ */
21
72
  private adaptMethod;
73
+ /**
74
+ * converts a tcgc operation parameter into a Rust method parameter
75
+ *
76
+ * @param param the tcgc operation parameter to convert
77
+ * @returns a Rust method parameter
78
+ */
22
79
  private adaptMethodParameter;
23
- private adaptSerdeFormat;
80
+ /**
81
+ * converts a tcgc spread parameter into a Rust partial body parameter.
82
+ *
83
+ * @param param the tcgc method parameter to convert
84
+ * @param format the wire format for the underlying body type
85
+ * @param opParamType the tcgc model to which the spread parameter belongs
86
+ * @returns a Rust partial body parameter
87
+ */
88
+ private adaptMethodSpreadParameter;
89
+ /**
90
+ * converts a Content-Type header value into a Rust body format
91
+ *
92
+ * @param contentType the value of the Content-Type header
93
+ * @returns a Rust body format
94
+ */
95
+ private adaptBodyFormat;
24
96
  }
25
97
  //# sourceMappingURL=adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/tcgcadapter/adapter.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAG9C,qBAAa,OAAO;WACL,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAK/E,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;IAGtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyB;IAG/C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoC;IAEvE,OAAO;IAcP,WAAW,IAAI,IAAI,CAAC,KAAK;IAiBzB,OAAO,CAAC,UAAU;IAuBlB,OAAO,CAAC,OAAO;IAqBf,OAAO,CAAC,QAAQ;IA2BhB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,OAAO;IAiIf,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,oBAAoB;IA0J5B,OAAO,CAAC,WAAW;IAmGnB,OAAO,CAAC,oBAAoB;IA4E5B,OAAO,CAAC,gBAAgB;CASzB"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/tcgcadapter/adapter.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAE9C,2DAA2D;AAC3D,qBAAa,OAAO;IAClB;;;;;OAKG;WACU,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAU/E,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;IAGtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyB;IAG/C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoC;IAEvE,OAAO;IAaP,wDAAwD;IACxD,WAAW,IAAI,IAAI,CAAC,KAAK;IAoCzB,4DAA4D;IAC5D,OAAO,CAAC,UAAU;IAqBlB;;;;;OAKG;IACH,OAAO,CAAC,OAAO;IAoBf;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IAgChB;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAsBrB,0CAA0C;IAC1C,OAAO,CAAC,OAAO;IAyHf,iCAAiC;IACjC,OAAO,CAAC,WAAW;IAWnB;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAWlB,4EAA4E;IAC5E,OAAO,CAAC,YAAY;IAcpB;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IA0J5B;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAqKnB;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IA6E5B;;;;;;;OAOG;IACH,OAAO,CAAC,0BAA0B;IA8BlC;;;;;OAKG;IACH,OAAO,CAAC,eAAe;CAcxB"}