@azure-tools/typespec-rust 0.14.1 → 0.14.2
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/helpers.d.ts.map +1 -1
- package/dist/src/codegen/helpers.js +2 -1
- package/dist/src/codegen/helpers.js.map +1 -1
- package/dist/src/codegen/models.js +121 -19
- package/dist/src/codegen/models.js.map +1 -1
- package/dist/src/codemodel/types.d.ts +24 -7
- package/dist/src/codemodel/types.d.ts.map +1 -1
- package/dist/src/codemodel/types.js +18 -7
- package/dist/src/codemodel/types.js.map +1 -1
- package/dist/src/tcgcadapter/adapter.d.ts.map +1 -1
- package/dist/src/tcgcadapter/adapter.js +116 -56
- package/dist/src/tcgcadapter/adapter.js.map +1 -1
- package/dist/src/tcgcadapter/helpers.d.ts +12 -2
- package/dist/src/tcgcadapter/helpers.d.ts.map +1 -1
- package/dist/src/tcgcadapter/helpers.js +28 -2
- package/dist/src/tcgcadapter/helpers.js.map +1 -1
- package/package.json +16 -16
|
@@ -19,14 +19,14 @@ export class QualifiedType {
|
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
class External extends QualifiedType {
|
|
22
|
-
constructor(crate, name, path) {
|
|
22
|
+
constructor(crate, name, path, features = new Array) {
|
|
23
23
|
super(name, path);
|
|
24
24
|
let crateName = this.path;
|
|
25
25
|
const pathSep = crateName.indexOf('::');
|
|
26
26
|
if (pathSep > 0) {
|
|
27
27
|
crateName = crateName.substring(0, pathSep);
|
|
28
28
|
}
|
|
29
|
-
crate.addDependency(new CrateDependency(crateName));
|
|
29
|
+
crate.addDependency(new CrateDependency(crateName, features));
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
class StructBase {
|
|
@@ -67,9 +67,10 @@ export class Bytes extends External {
|
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
export class Decimal extends External {
|
|
70
|
-
constructor(crate) {
|
|
71
|
-
super(crate, 'Decimal', 'rust_decimal');
|
|
70
|
+
constructor(crate, stringEncoding) {
|
|
71
|
+
super(crate, 'Decimal', 'rust_decimal', !stringEncoding ? ['serde-with-float'] : undefined);
|
|
72
72
|
this.kind = 'decimal';
|
|
73
|
+
this.stringEncoding = stringEncoding;
|
|
73
74
|
}
|
|
74
75
|
}
|
|
75
76
|
export class EncodedBytes {
|
|
@@ -136,8 +137,9 @@ export class Lifetime {
|
|
|
136
137
|
}
|
|
137
138
|
}
|
|
138
139
|
export class Literal {
|
|
139
|
-
constructor(value) {
|
|
140
|
+
constructor(valueKind, value) {
|
|
140
141
|
this.kind = 'literal';
|
|
142
|
+
this.valueKind = valueKind;
|
|
141
143
|
this.value = value;
|
|
142
144
|
}
|
|
143
145
|
}
|
|
@@ -156,9 +158,10 @@ export class Model extends StructBase {
|
|
|
156
158
|
}
|
|
157
159
|
}
|
|
158
160
|
export class ModelField extends StructFieldBase {
|
|
159
|
-
constructor(name, serde, visibility, type) {
|
|
161
|
+
constructor(name, serde, visibility, type, optional) {
|
|
160
162
|
super(name, visibility, type);
|
|
161
163
|
this.kind = 'modelField';
|
|
164
|
+
this.optional = optional;
|
|
162
165
|
this.serde = serde;
|
|
163
166
|
}
|
|
164
167
|
}
|
|
@@ -222,10 +225,18 @@ export class Result extends External {
|
|
|
222
225
|
this.type = type;
|
|
223
226
|
}
|
|
224
227
|
}
|
|
228
|
+
export class SafeInt extends External {
|
|
229
|
+
constructor(crate, stringEncoding) {
|
|
230
|
+
super(crate, 'Number', 'serde_json');
|
|
231
|
+
this.kind = 'safeint';
|
|
232
|
+
this.stringEncoding = stringEncoding;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
225
235
|
export class Scalar {
|
|
226
|
-
constructor(type) {
|
|
236
|
+
constructor(type, stringEncoding) {
|
|
227
237
|
this.kind = 'scalar';
|
|
228
238
|
this.type = type;
|
|
239
|
+
this.stringEncoding = stringEncoding;
|
|
229
240
|
}
|
|
230
241
|
}
|
|
231
242
|
export class Slice {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/codemodel/types.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,OAAO,EAAS,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/codemodel/types.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,OAAO,EAAS,eAAe,EAAE,MAAM,YAAY,CAAC;AA4MpD,2DAA2D;AAC3D,MAAM,CAAN,IAAY,UAQX;AARD,WAAY,UAAU;IACpB,yDAAe,CAAA;IAEf,yCAAyC;IACzC,6CAAS,CAAA;IAET,4CAA4C;IAC5C,+CAAU,CAAA;AACZ,CAAC,EARW,UAAU,KAAV,UAAU,QAQrB;AA0ND,MAAM,OAAO,aAAa;IACxB,YAAY,IAAY,EAAE,IAAY;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAgBD,MAAM,QAAS,SAAQ,aAAa;IAClC,YAAY,KAAY,EAAE,IAAY,EAAE,IAAY,EAAE,WAAW,IAAI,KAAa;QAChF,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAClB,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1B,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;QACD,KAAK,CAAC,aAAa,CAAC,IAAI,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IAChE,CAAC;CACF;AAwCD,MAAM,UAAU;IACd,YAAY,IAAwB,EAAE,IAAY,EAAE,UAAsB;QACxE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACjB,CAAC;CACF;AAED,MAAM,eAAe;IACnB,YAAY,IAAY,EAAE,UAAsB,EAAE,IAAU;QAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACjB,CAAC;CACF;AAED,mGAAmG;AACnG,mGAAmG;AAEnG,MAAM,OAAO,GAAI,SAAQ,aAAa;IACpC,YAAY,IAAqB;QAC/B,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,OAAO,GAAG;IACd,YAAY,IAAc;QACxB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,OAAO,KAAM,SAAQ,QAAQ;IACjC,YAAY,KAAY;QACtB,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;IACtB,CAAC;CACF;AAED,MAAM,OAAO,OAAQ,SAAQ,QAAQ;IACnC,YAAY,KAAY,EAAE,cAAuB;QAC/C,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC5F,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACtB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;CACF;AAED,MAAM,OAAO,YAAY;IACvB,YAAY,QAAuB,EAAE,KAAc;QACjD,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAED,MAAM,OAAO,IAAI;IACf,YAAY,IAAY,EAAE,GAAY,EAAE,UAAmB;QACzD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,EAAa,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACjB,CAAC;CACF;AAED,MAAM,OAAO,SAAS;IACpB,YAAY,IAAY,EAAE,IAAU,EAAE,KAAsB;QAC1D,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACjB,CAAC;CACF;AAED,MAAM,OAAO,IAAK,SAAQ,QAAQ;IAChC,YAAY,KAAY;QACtB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;IACrB,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,QAAQ;IACxC,YAAY,KAAY,EAAE,IAAY,EAAE,IAAY;QAClD,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AAED,MAAM,OAAO,OAAQ,SAAQ,aAAa;IACxC,YAAY,IAAc;QACxB,KAAK,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,OAAO,SAAS;IACpB,YAAY,IAAY,EAAE,IAAU;QAClC,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,OAAO,SAAU,SAAQ,QAAQ;IACrC,YAAY,KAAY;QACtB,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;CACF;AAED,MAAM,OAAO,QAAQ;IACnB,YAAY,IAAY;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IACzB,CAAC;CACF;AAED,MAAM,OAAO,OAAO;IAClB,YAAY,SAA8B,EAAE,KAAgC;QAC1E,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAED,MAAM,OAAO,UAAU;IACrB,YAAY,IAAY;QACtB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACjB,CAAC;CACF;AAED,MAAM,OAAO,KAAM,SAAQ,UAAU;IACnC,YAAY,IAAY,EAAE,UAAsB,EAAE,KAAiB;QACjE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,EAAc,CAAC;QACtC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAED,MAAM,OAAO,UAAW,SAAQ,eAAe;IAC7C,YAAY,IAAY,EAAE,KAAa,EAAE,UAAsB,EAAE,IAAU,EAAE,QAAiB;QAC5F,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,QAAQ;IAC1C,YAAY,KAAY,EAAE,QAA0B,EAAE,GAAY;QAChE,KAAK,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;CACF;AAED,MAAM,OAAO,MAAM;IACjB,YAAY,IAA8C;QACxD,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,OAAO,KAAM,SAAQ,QAAQ;IACjC,YAAY,KAAY,EAAE,IAAoB;QAC5C,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,OAAO,OAAO;IAClB,YAAY,IAAO,EAAE,MAAkB;QACrC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED,MAAM,OAAO,GAAG;IACd,YAAY,IAAO;QACjB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,OAAO,cAAkB,SAAQ,QAAQ;IAC7C,YAAY,KAAY,EAAE,OAAU;QAClC,KAAK,CAAC,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED,MAAM,OAAO,QAAY,SAAQ,QAAQ;IACvC,YAAY,KAAY,EAAE,OAAU;QAClC,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED,MAAM,OAAO,YAAY;IACvB;QACE,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,OAAO,MAAU,SAAQ,QAAQ;IACrC,YAAY,KAAY,EAAE,IAAO;QAC/B,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,OAAO,OAAQ,SAAQ,QAAQ;IACnC,YAAY,KAAY,EAAE,cAAuB;QAC/C,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACtB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;CACF;AAED,MAAM,OAAO,MAAM;IACjB,YAAY,IAAgB,EAAE,cAAuB;QACnD,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;CACF;AAED,MAAM,OAAO,KAAK;IAChB,YAAY,IAAc;QACxB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,OAAO,WAAW;IACtB;QACE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACpB,CAAC;CACF;AAED,MAAM,OAAO,UAAU;IACrB;QACE,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;IACvB,CAAC;CACF;AAED,MAAM,OAAO,MAAO,SAAQ,UAAU;IACpC,YAAY,IAAY,EAAE,UAAsB;QAC9C,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,EAAe,CAAC;IACzC,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,eAAe;IAC9C,YAAY,IAAY,EAAE,UAAsB,EAAE,IAAU;QAC1D,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,QAAQ;IAC3C,YAAY,KAAY,EAAE,MAAqB;QAC7C,KAAK,CAAC,KAAK,EAAE,iBAAiB,EAAE,yBAAyB,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED,MAAM,OAAO,IAAI;IACf;QACE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;IACrB,CAAC;CACF;AAED,MAAM,OAAO,GAAI,SAAQ,QAAQ;IAC/B,YAAY,KAAY;QACtB,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACpB,CAAC;CACF;AAED,MAAM,OAAO,MAAM;IACjB,YAAY,IAAc;QACxB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/tcgcadapter/adapter.ts"],"names":[],"mappings":"AAOA,OAAO,EAAyB,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAIpG,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAE9C,oDAAoD;AACpD,MAAM,MAAM,SAAS;AACnB,mFAAmF;AACnF,eAAe;AAEf,mDAAmD;AACnD,iBAAiB;AAEjB;;;GAGG;AACH,eAAe;AAEf,sEAAsE;AACtE,gBAAgB,CAAC;AAEnB;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,QAAQ,CAAC;gBAExC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,gBAAgB;CAKxE;AAED,2DAA2D;AAC3D,qBAAa,OAAO;IAClB;;;;;OAKG;WACU,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAY/E,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAG7C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyB;IAG/C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoC;IAGvE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAc;IAG7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8E;IAExG,OAAO;IAgBP,wDAAwD;IACxD,WAAW,IAAI,IAAI,CAAC,KAAK;IAiCzB,gDAAgD;IAChD,OAAO,CAAC,SAAS;IAajB,4DAA4D;IAC5D,OAAO,CAAC,UAAU;IAyBlB;;;;;OAKG;IACH,OAAO,CAAC,OAAO;IAoBf;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAWpB;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ;IA2EhB;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/tcgcadapter/adapter.ts"],"names":[],"mappings":"AAOA,OAAO,EAAyB,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAIpG,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAE9C,oDAAoD;AACpD,MAAM,MAAM,SAAS;AACnB,mFAAmF;AACnF,eAAe;AAEf,mDAAmD;AACnD,iBAAiB;AAEjB;;;GAGG;AACH,eAAe;AAEf,sEAAsE;AACtE,gBAAgB,CAAC;AAEnB;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,QAAQ,CAAC;gBAExC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,gBAAgB;CAKxE;AAED,2DAA2D;AAC3D,qBAAa,OAAO;IAClB;;;;;OAKG;WACU,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAY/E,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAG7C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyB;IAG/C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoC;IAGvE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAc;IAG7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8E;IAExG,OAAO;IAgBP,wDAAwD;IACxD,WAAW,IAAI,IAAI,CAAC,KAAK;IAiCzB,gDAAgD;IAChD,OAAO,CAAC,SAAS;IAajB,4DAA4D;IAC5D,OAAO,CAAC,UAAU;IAyBlB;;;;;OAKG;IACH,OAAO,CAAC,OAAO;IAoBf;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAWpB;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ;IA2EhB;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;IA4CrB;;;;;;OAMG;IACH,OAAO,CAAC,OAAO;IAoIf,+DAA+D;IAC/D,OAAO,CAAC,eAAe;IAWvB,sCAAsC;IACtC,OAAO,CAAC,UAAU;IAWlB,kDAAkD;IAClD,OAAO,CAAC,UAAU;IAUlB,qDAAqD;IACrD,OAAO,CAAC,SAAS;IAgDjB,4CAA4C;IAC5C,OAAO,CAAC,QAAQ;IAUhB,yCAAyC;IACzC,OAAO,CAAC,cAAc;IAUtB,mCAAmC;IACnC,OAAO,CAAC,aAAa;IAWrB,iCAAiC;IACjC,OAAO,CAAC,WAAW;IAWnB,0BAA0B;IAC1B,OAAO,CAAC,MAAM;IAWd;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAoClB,4EAA4E;IAC5E,OAAO,CAAC,YAAY;IASpB;;;;;;;;OAQG;IACH,OAAO,CAAC,SAAS;IAOjB;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IA+O5B;;;;;;OAMG;IACH,OAAO,CAAC,yBAAyB;IAmBjC;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAwC5B;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IAwB3B;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAyQnB;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IAoB3B;;;;;;;;OAQG;IACH,OAAO,CAAC,yBAAyB;IAoEjC;;;;;;;OAOG;IACH,OAAO,CAAC,2BAA2B;IA+EnC;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAsH5B;;;;;;;;;OASG;IACH,OAAO,CAAC,oBAAoB;IAqC5B;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IA2BtB;;;;;;;OAOG;IACH,OAAO,CAAC,0BAA0B;IA+BlC;;;;;OAKG;IACH,OAAO,CAAC,eAAe;CAaxB"}
|
|
@@ -135,7 +135,7 @@ export class Adapter {
|
|
|
135
135
|
rustEnum.docs = this.adaptDocs(sdkEnum.summary, sdkEnum.doc);
|
|
136
136
|
this.types.set(enumName, rustEnum);
|
|
137
137
|
for (const value of sdkEnum.values) {
|
|
138
|
-
const rustEnumValue = new rust.EnumValue(helpers.fixUpEnumValueName(value
|
|
138
|
+
const rustEnumValue = new rust.EnumValue(helpers.fixUpEnumValueName(value), rustEnum, value.value);
|
|
139
139
|
rustEnumValue.docs = this.adaptDocs(value.summary, value.doc);
|
|
140
140
|
rustEnum.values.push(rustEnumValue);
|
|
141
141
|
}
|
|
@@ -153,7 +153,7 @@ export class Adapter {
|
|
|
153
153
|
const enumType = this.getEnum(sdkEnumValue.enumType);
|
|
154
154
|
// find the specified enum value
|
|
155
155
|
for (const value of enumType.values) {
|
|
156
|
-
if (value.name === helpers.fixUpEnumValueName(sdkEnumValue
|
|
156
|
+
if (value.name === helpers.fixUpEnumValueName(sdkEnumValue)) {
|
|
157
157
|
return value;
|
|
158
158
|
}
|
|
159
159
|
}
|
|
@@ -253,8 +253,20 @@ export class Adapter {
|
|
|
253
253
|
if (modelVisibility === 'pub' || property.optional) {
|
|
254
254
|
fieldType = new rust.Option(fieldType.kind === 'box' ? fieldType : this.typeToWireType(fieldType));
|
|
255
255
|
}
|
|
256
|
-
const modelField = new rust.ModelField(naming.getEscapedReservedName(snakeCaseName(property.name), 'prop'), property.serializedName, modelVisibility, fieldType);
|
|
256
|
+
const modelField = new rust.ModelField(naming.getEscapedReservedName(snakeCaseName(property.name), 'prop'), property.serializedName, modelVisibility, fieldType, property.optional);
|
|
257
257
|
modelField.docs = this.adaptDocs(property.summary, property.doc);
|
|
258
|
+
// if this is a literal, add a doc comment explaining its behavior
|
|
259
|
+
const unwrappedType = helpers.unwrapOption(fieldType);
|
|
260
|
+
if (unwrappedType.kind === 'literal') {
|
|
261
|
+
const literalDoc = `${modelField.optional ? 'When Some, field' : 'Field'} has constant value ${unwrappedType.value}. Any specified value will be ignored.`;
|
|
262
|
+
if (!modelField.docs.description) {
|
|
263
|
+
modelField.docs.description = '';
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
modelField.docs.description += '\n\n';
|
|
267
|
+
}
|
|
268
|
+
modelField.docs.description += literalDoc;
|
|
269
|
+
}
|
|
258
270
|
const xmlName = getXMLName(property.decorators);
|
|
259
271
|
if (xmlName) {
|
|
260
272
|
// use the XML name when specified
|
|
@@ -285,46 +297,6 @@ export class Adapter {
|
|
|
285
297
|
return 'unix_time';
|
|
286
298
|
}
|
|
287
299
|
};
|
|
288
|
-
const getScalar = (kind) => {
|
|
289
|
-
let scalarType;
|
|
290
|
-
switch (kind) {
|
|
291
|
-
case 'boolean':
|
|
292
|
-
scalarType = 'bool';
|
|
293
|
-
break;
|
|
294
|
-
case 'float':
|
|
295
|
-
case 'float32':
|
|
296
|
-
scalarType = 'f32';
|
|
297
|
-
break;
|
|
298
|
-
case 'float64':
|
|
299
|
-
scalarType = 'f64';
|
|
300
|
-
break;
|
|
301
|
-
case 'int16':
|
|
302
|
-
scalarType = 'i16';
|
|
303
|
-
break;
|
|
304
|
-
case 'int32':
|
|
305
|
-
scalarType = 'i32';
|
|
306
|
-
break;
|
|
307
|
-
case 'int64':
|
|
308
|
-
scalarType = 'i64';
|
|
309
|
-
break;
|
|
310
|
-
case 'int8':
|
|
311
|
-
scalarType = 'i8';
|
|
312
|
-
break;
|
|
313
|
-
case 'uint16':
|
|
314
|
-
scalarType = 'u16';
|
|
315
|
-
break;
|
|
316
|
-
case 'uint32':
|
|
317
|
-
scalarType = 'u32';
|
|
318
|
-
break;
|
|
319
|
-
case 'uint64':
|
|
320
|
-
scalarType = 'u64';
|
|
321
|
-
break;
|
|
322
|
-
case 'uint8':
|
|
323
|
-
scalarType = 'u8';
|
|
324
|
-
break;
|
|
325
|
-
}
|
|
326
|
-
return this.getScalar(scalarType);
|
|
327
|
-
};
|
|
328
300
|
switch (type.kind) {
|
|
329
301
|
case 'array':
|
|
330
302
|
return this.getVec(this.typeToWireType(this.getType(type.valueType, stack)));
|
|
@@ -339,10 +311,10 @@ export class Adapter {
|
|
|
339
311
|
return this.getLiteral(type);
|
|
340
312
|
case 'decimal':
|
|
341
313
|
case 'decimal128': {
|
|
342
|
-
const keyName = 'decimal';
|
|
314
|
+
const keyName = 'decimal' + (type.encode ? `-${type.encode}` : '');
|
|
343
315
|
let decimalType = this.types.get(keyName);
|
|
344
316
|
if (!decimalType) {
|
|
345
|
-
decimalType = new rust.Decimal(this.crate);
|
|
317
|
+
decimalType = new rust.Decimal(this.crate, type.encode === 'string');
|
|
346
318
|
this.types.set(keyName, decimalType);
|
|
347
319
|
}
|
|
348
320
|
return decimalType;
|
|
@@ -356,7 +328,7 @@ export class Adapter {
|
|
|
356
328
|
case 'float64':
|
|
357
329
|
case 'int32':
|
|
358
330
|
case 'int64':
|
|
359
|
-
return getScalar(type.wireType.kind);
|
|
331
|
+
return this.getScalar(type.wireType.kind, type.wireType.encode);
|
|
360
332
|
case 'string':
|
|
361
333
|
return this.getStringType();
|
|
362
334
|
default:
|
|
@@ -373,7 +345,7 @@ export class Adapter {
|
|
|
373
345
|
case 'uint32':
|
|
374
346
|
case 'uint64':
|
|
375
347
|
case 'uint8':
|
|
376
|
-
return getScalar(type.kind);
|
|
348
|
+
return this.getScalar(type.kind, type.encode);
|
|
377
349
|
case 'enum':
|
|
378
350
|
return this.getEnum(type);
|
|
379
351
|
case 'enumvalue':
|
|
@@ -381,6 +353,8 @@ export class Adapter {
|
|
|
381
353
|
case 'model':
|
|
382
354
|
return this.getModel(type, stack);
|
|
383
355
|
case 'endpoint':
|
|
356
|
+
case 'plainDate':
|
|
357
|
+
case 'plainTime':
|
|
384
358
|
case 'string':
|
|
385
359
|
case 'url': {
|
|
386
360
|
if (type.kind === 'string' && type.crossLanguageDefinitionId === 'Azure.Core.eTag') {
|
|
@@ -409,6 +383,15 @@ export class Adapter {
|
|
|
409
383
|
this.types.set(keyName, timeType);
|
|
410
384
|
return timeType;
|
|
411
385
|
}
|
|
386
|
+
case 'safeint': {
|
|
387
|
+
const keyName = type.kind + (type.encode ? `-${type.encode}` : '');
|
|
388
|
+
let safeint = this.types.get(keyName);
|
|
389
|
+
if (!safeint) {
|
|
390
|
+
safeint = new rust.SafeInt(this.crate, type.encode === 'string');
|
|
391
|
+
this.types.set(keyName, safeint);
|
|
392
|
+
}
|
|
393
|
+
return safeint;
|
|
394
|
+
}
|
|
412
395
|
case 'unknown': {
|
|
413
396
|
const keyName = 'jsonValue';
|
|
414
397
|
let anyType = this.types.get(keyName);
|
|
@@ -467,11 +450,49 @@ export class Adapter {
|
|
|
467
450
|
return refType;
|
|
468
451
|
}
|
|
469
452
|
/** returns a scalar for the specified scalar type */
|
|
470
|
-
getScalar(type) {
|
|
471
|
-
let
|
|
453
|
+
getScalar(type, encode) {
|
|
454
|
+
let scalarType;
|
|
455
|
+
switch (type) {
|
|
456
|
+
case 'boolean':
|
|
457
|
+
scalarType = 'bool';
|
|
458
|
+
break;
|
|
459
|
+
case 'float':
|
|
460
|
+
case 'float32':
|
|
461
|
+
scalarType = 'f32';
|
|
462
|
+
break;
|
|
463
|
+
case 'float64':
|
|
464
|
+
scalarType = 'f64';
|
|
465
|
+
break;
|
|
466
|
+
case 'int16':
|
|
467
|
+
scalarType = 'i16';
|
|
468
|
+
break;
|
|
469
|
+
case 'int32':
|
|
470
|
+
scalarType = 'i32';
|
|
471
|
+
break;
|
|
472
|
+
case 'int64':
|
|
473
|
+
scalarType = 'i64';
|
|
474
|
+
break;
|
|
475
|
+
case 'int8':
|
|
476
|
+
scalarType = 'i8';
|
|
477
|
+
break;
|
|
478
|
+
case 'uint16':
|
|
479
|
+
scalarType = 'u16';
|
|
480
|
+
break;
|
|
481
|
+
case 'uint32':
|
|
482
|
+
scalarType = 'u32';
|
|
483
|
+
break;
|
|
484
|
+
case 'uint64':
|
|
485
|
+
scalarType = 'u64';
|
|
486
|
+
break;
|
|
487
|
+
case 'uint8':
|
|
488
|
+
scalarType = 'u8';
|
|
489
|
+
break;
|
|
490
|
+
}
|
|
491
|
+
const keyName = scalarType + (encode ? `-${encode}` : '');
|
|
492
|
+
let scalar = this.types.get(keyName);
|
|
472
493
|
if (!scalar) {
|
|
473
|
-
scalar = new rust.Scalar(
|
|
474
|
-
this.types.set(
|
|
494
|
+
scalar = new rust.Scalar(scalarType, encode === 'string');
|
|
495
|
+
this.types.set(keyName, scalar);
|
|
475
496
|
}
|
|
476
497
|
return scalar;
|
|
477
498
|
}
|
|
@@ -536,12 +557,37 @@ export class Adapter {
|
|
|
536
557
|
* @returns a Rust literal
|
|
537
558
|
*/
|
|
538
559
|
getLiteral(constType) {
|
|
539
|
-
|
|
560
|
+
var _a;
|
|
561
|
+
let valueKind;
|
|
562
|
+
let keyKind;
|
|
563
|
+
switch (constType.valueType.kind) {
|
|
564
|
+
case 'boolean':
|
|
565
|
+
case 'float32':
|
|
566
|
+
case 'float64':
|
|
567
|
+
case 'int16':
|
|
568
|
+
case 'int32':
|
|
569
|
+
case 'int64':
|
|
570
|
+
case 'int8':
|
|
571
|
+
case 'uint16':
|
|
572
|
+
case 'uint32':
|
|
573
|
+
case 'uint64':
|
|
574
|
+
case 'uint8':
|
|
575
|
+
valueKind = this.getScalar(constType.valueType.kind, constType.valueType.encode);
|
|
576
|
+
keyKind = valueKind.type;
|
|
577
|
+
break;
|
|
578
|
+
case 'string':
|
|
579
|
+
valueKind = this.getStringType();
|
|
580
|
+
keyKind = valueKind.kind;
|
|
581
|
+
break;
|
|
582
|
+
default:
|
|
583
|
+
throw new AdapterError('UnsupportedTsp', `unhandled constant value kind ${constType.valueType.kind}`, (_a = constType.__raw) === null || _a === void 0 ? void 0 : _a.node);
|
|
584
|
+
}
|
|
585
|
+
const literalKey = `literal-${keyKind}-${constType.value}`;
|
|
540
586
|
let literalType = this.types.get(literalKey);
|
|
541
587
|
if (literalType) {
|
|
542
588
|
return literalType;
|
|
543
589
|
}
|
|
544
|
-
literalType = new rust.Literal(constType.value);
|
|
590
|
+
literalType = new rust.Literal(valueKind, constType.value);
|
|
545
591
|
this.types.set(literalKey, literalType);
|
|
546
592
|
return literalType;
|
|
547
593
|
}
|
|
@@ -1340,7 +1386,6 @@ export class Adapter {
|
|
|
1340
1386
|
*/
|
|
1341
1387
|
adaptMethodParameter(param) {
|
|
1342
1388
|
var _a, _b, _c, _d, _e;
|
|
1343
|
-
const paramLoc = param.onClient ? 'client' : 'method';
|
|
1344
1389
|
/**
|
|
1345
1390
|
* used to create keys for this.clientMethodParams
|
|
1346
1391
|
* @param param the param for which to create a key
|
|
@@ -1351,6 +1396,7 @@ export class Adapter {
|
|
|
1351
1396
|
// in different places across methods (path/query)
|
|
1352
1397
|
return `${param.name}-${param.kind}`;
|
|
1353
1398
|
};
|
|
1399
|
+
const paramLoc = param.onClient ? 'client' : 'method';
|
|
1354
1400
|
// if this is a client method param, check if we've already adapted it
|
|
1355
1401
|
if (paramLoc === 'client') {
|
|
1356
1402
|
const clientMethodParam = this.clientMethodParams.get(getClientParamsKey(param));
|
|
@@ -1358,7 +1404,17 @@ export class Adapter {
|
|
|
1358
1404
|
return clientMethodParam;
|
|
1359
1405
|
}
|
|
1360
1406
|
}
|
|
1361
|
-
|
|
1407
|
+
/** returns the corresponding client param field name for a client parameter */
|
|
1408
|
+
const getCorrespondingClientParamName = function (param) {
|
|
1409
|
+
if (param.onClient && param.correspondingMethodParams.length === 1) {
|
|
1410
|
+
// we get here if the param was aliased via the @paramAlias decorator.
|
|
1411
|
+
// this gives us the name of the client param's backing field which has
|
|
1412
|
+
// the aliased name.
|
|
1413
|
+
return param.correspondingMethodParams[0].name;
|
|
1414
|
+
}
|
|
1415
|
+
return param.name;
|
|
1416
|
+
};
|
|
1417
|
+
const paramName = naming.getEscapedReservedName(snakeCaseName(getCorrespondingClientParamName(param)), 'param');
|
|
1362
1418
|
let paramType = this.getType(param.type);
|
|
1363
1419
|
// for required header/path/query method string params, we might emit them as borrowed types
|
|
1364
1420
|
if (!param.optional && !param.onClient && (param.kind === 'header' || param.kind === 'path' || param.kind === 'query')) {
|
|
@@ -1507,6 +1563,7 @@ export class Adapter {
|
|
|
1507
1563
|
case 'model':
|
|
1508
1564
|
case 'offsetDateTime':
|
|
1509
1565
|
case 'ref':
|
|
1566
|
+
case 'safeint':
|
|
1510
1567
|
case 'scalar':
|
|
1511
1568
|
case 'slice':
|
|
1512
1569
|
case 'str':
|
|
@@ -1634,8 +1691,11 @@ function recursiveKeyName(root, type) {
|
|
|
1634
1691
|
return `${root}-${type.kind}-${type.name}`;
|
|
1635
1692
|
case 'ref':
|
|
1636
1693
|
return recursiveKeyName(`${root}-${type.kind}`, type.type);
|
|
1694
|
+
case 'safeint':
|
|
1695
|
+
case 'decimal':
|
|
1696
|
+
return `${root}-${type.kind}${type.stringEncoding ? '-string' : ''}`;
|
|
1637
1697
|
case 'scalar':
|
|
1638
|
-
return `${root}-${type.kind}-${type.type}`;
|
|
1698
|
+
return `${root}-${type.kind}-${type.type}${type.stringEncoding ? '-string' : ''}`;
|
|
1639
1699
|
case 'slice':
|
|
1640
1700
|
return recursiveKeyName(`${root}-${type.kind}`, type.type);
|
|
1641
1701
|
default:
|