@azure-tools/typespec-rust 0.4.0 → 0.5.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.
@@ -11,11 +11,14 @@ export interface Client {
11
11
  constructable?: ClientConstruction;
12
12
  /**
13
13
  * fields contains the ctor parameters that are
14
- * persisted as fields on the client type. note that
15
- * not all ctor params might be persisted, and not
16
- * all fields are ctor params.
14
+ * persisted as fields on the client type and might
15
+ * also contain other fields that don't originate
16
+ * from ctor params (e.g. the pipeline).
17
+ * by convention, all fields that have their values
18
+ * populated from ctor params (required or optional)
19
+ * will have the same name as their originating param.
17
20
  */
18
- fields: Array<ClientParameter>;
21
+ fields: Array<types.StructField>;
19
22
  /** all the methods for this client */
20
23
  methods: Array<MethodType>;
21
24
  /** the parent client in a hierarchical client */
@@ -27,12 +30,19 @@ export interface ClientConstruction {
27
30
  options: ClientOptions;
28
31
  /** the constructor functions for a client. */
29
32
  constructors: Array<Constructor>;
33
+ /**
34
+ * indicates that the endpoint requires additional host configuration. i.e. the
35
+ * endpoint passed by the caller will be augmented with supplemental path info.
36
+ */
37
+ endpoint?: SupplementalEndpoint;
30
38
  }
31
39
  /** ClientOptions is the struct containing optional client params */
32
40
  export interface ClientOptions extends types.Option {
33
41
  /** the client options type */
34
42
  type: types.Struct;
35
43
  }
44
+ /** ClientParameter defines the possible client parameter types */
45
+ export type ClientParameter = ClientEndpointParameter | ClientMethodParameter;
36
46
  /** represents a client constructor function */
37
47
  export interface Constructor {
38
48
  /** name of the constructor */
@@ -40,15 +50,25 @@ export interface Constructor {
40
50
  /** the modeled parameters. at minimum, an endpoint param */
41
51
  parameters: Array<ClientParameter>;
42
52
  }
43
- /** ClientParameter is a Rust client parameter */
44
- export interface ClientParameter {
45
- /** the name of the parameter */
46
- name: string;
47
- /** the type of the client parameter */
48
- type: types.Type;
53
+ /** ClientMethodParameter is a Rust client parameter that's used in method bodies */
54
+ export interface ClientMethodParameter extends ClientParameterBase {
55
+ kind: 'clientMethod';
49
56
  /** indicates if the parameter is a reference. defaults to false */
50
57
  ref: boolean;
51
58
  }
59
+ /** ClientEndpointParameter is used when constructing the endpoint's supplemental path */
60
+ export interface ClientEndpointParameter extends ClientParameterBase {
61
+ kind: 'clientEndpoint';
62
+ /** the segment name to be replaced with the param's value */
63
+ segment: string;
64
+ }
65
+ /** contains data on how to supplement a client endpoint */
66
+ export interface SupplementalEndpoint {
67
+ /** the supplemental path used to construct the complete endpoint */
68
+ path: string;
69
+ /** the parameters used to replace segments in the path */
70
+ parameters: Array<ClientEndpointParameter>;
71
+ }
52
72
  /** HTTPMethod defines the possible HTTP verbs in a request */
53
73
  export type HTTPMethod = 'delete' | 'get' | 'head' | 'patch' | 'post' | 'put';
54
74
  /** Method defines the possible method types */
@@ -189,6 +209,17 @@ export interface QueryParameter extends HTTPParameterBase {
189
209
  /** indicates if the query parameter should be URL encoded */
190
210
  encoded: boolean;
191
211
  }
212
+ interface ClientParameterBase {
213
+ /** the name of the parameter */
214
+ name: string;
215
+ /** the type of the client parameter */
216
+ type: types.Type;
217
+ /**
218
+ * indicates if the parameter is optional.
219
+ * optional params will be surfaced in the client options type.
220
+ */
221
+ optional: boolean;
222
+ }
192
223
  /** base type for HTTP-based methods */
193
224
  interface HTTPMethodBase extends method.Method<types.Type> {
194
225
  /** the params passed to the method (excluding self). can be empty */
@@ -209,6 +240,9 @@ interface HTTPParameterBase extends method.Parameter {
209
240
  /** optional params go in the method's MethodOptions type */
210
241
  optional: boolean;
211
242
  }
243
+ declare class ClientParameterBase implements ClientParameterBase {
244
+ constructor(name: string, type: types.Type, optional: boolean);
245
+ }
212
246
  declare class HTTPMethodBase extends method.Method<types.Type> implements HTTPMethodBase {
213
247
  constructor(name: string, httpMethod: HTTPMethod, httpPath: string, pub: boolean, impl: string, self: method.Self);
214
248
  }
@@ -233,12 +267,15 @@ export declare class ClientConstruction implements ClientConstruction {
233
267
  export declare class ClientOptions extends types.Option implements ClientOptions {
234
268
  constructor(type: types.Struct);
235
269
  }
236
- export declare class ClientParameter implements ClientParameter {
237
- constructor(name: string, type: types.Type, ref?: boolean);
270
+ export declare class ClientMethodParameter extends ClientParameterBase implements ClientMethodParameter {
271
+ constructor(name: string, type: types.Type, optional: boolean, ref?: boolean);
238
272
  }
239
273
  export declare class Constructor implements Constructor {
240
274
  constructor(name: string);
241
275
  }
276
+ export declare class ClientEndpointParameter extends ClientParameterBase implements ClientEndpointParameter {
277
+ constructor(name: string, type: types.Type, optional: boolean, segment: string);
278
+ }
242
279
  export declare class HeaderCollectionParameter extends HTTPParameterBase implements HeaderCollectionParameter {
243
280
  constructor(name: string, header: string, location: ParameterLocation, optional: boolean, type: types.Vector, format: CollectionFormat);
244
281
  }
@@ -272,5 +309,8 @@ export declare class QueryCollectionParameter extends HTTPParameterBase implemen
272
309
  export declare class QueryParameter extends HTTPParameterBase implements QueryParameter {
273
310
  constructor(name: string, key: string, location: ParameterLocation, optional: boolean, type: types.Type, encoded: boolean);
274
311
  }
312
+ export declare class SupplementalEndpoint implements SupplementalEndpoint {
313
+ constructor(path: string);
314
+ }
275
315
  export {};
276
316
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/codemodel/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/codemodel/client.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,13 @@
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  import * as method from './method.js';
6
6
  import * as types from './types.js';
7
+ class ClientParameterBase {
8
+ constructor(name, type, optional) {
9
+ this.name = name;
10
+ this.type = type;
11
+ this.optional = optional;
12
+ }
13
+ }
7
14
  class HTTPMethodBase extends method.Method {
8
15
  constructor(name, httpMethod, httpPath, pub, impl, self) {
9
16
  super(name, pub, impl, self);
@@ -64,10 +71,10 @@ export class ClientOptions extends types.Option {
64
71
  super(type);
65
72
  }
66
73
  }
67
- export class ClientParameter {
68
- constructor(name, type, ref) {
69
- this.name = name;
70
- this.type = type;
74
+ export class ClientMethodParameter extends ClientParameterBase {
75
+ constructor(name, type, optional, ref) {
76
+ super(name, type, optional);
77
+ this.kind = 'clientMethod';
71
78
  this.ref = ref ? ref : false;
72
79
  }
73
80
  }
@@ -77,6 +84,13 @@ export class Constructor {
77
84
  this.parameters = new Array();
78
85
  }
79
86
  }
87
+ export class ClientEndpointParameter extends ClientParameterBase {
88
+ constructor(name, type, optional, segment) {
89
+ super(name, type, optional);
90
+ this.kind = 'clientEndpoint';
91
+ this.segment = segment;
92
+ }
93
+ }
80
94
  export class HeaderCollectionParameter extends HTTPParameterBase {
81
95
  constructor(name, header, location, optional, type, format) {
82
96
  validateHeaderPathQueryParamKind(type, 'headerCollection');
@@ -162,6 +176,12 @@ export class QueryParameter extends HTTPParameterBase {
162
176
  this.encoded = encoded;
163
177
  }
164
178
  }
179
+ export class SupplementalEndpoint {
180
+ constructor(path) {
181
+ this.path = path;
182
+ this.parameters = new Array();
183
+ }
184
+ }
165
185
  function validateHeaderPathQueryParamKind(type, paramKind) {
166
186
  switch (type.kind) {
167
187
  case 'String':
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/codemodel/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/codemodel/client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"crate.js","sourceRoot":"","sources":["../../../src/codemodel/crate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crate.js","sourceRoot":"","sources":["../../../src/codemodel/crate.ts"],"names":[],"mappings":"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"}
@@ -63,6 +63,22 @@ export declare class Adapter {
63
63
  * @returns a Rust client
64
64
  */
65
65
  private recursiveAdaptClient;
66
+ /**
67
+ * creates a client constructor for the TokenCredential type.
68
+ * the constructor is named new.
69
+ *
70
+ * @param cred the OAuth2 credential to adapt
71
+ * @returns a client constructor for TokenCredential
72
+ */
73
+ private createTokenCredentialCtor;
74
+ /**
75
+ * converts a tcgc client parameter to a Rust client parameter
76
+ *
77
+ * @param param the tcgc client parameter to convert
78
+ * @param constructable contains client construction info. if the param is optional, it will go in the options type
79
+ * @returns the Rust client parameter
80
+ */
81
+ private adaptClientParameter;
66
82
  /**
67
83
  * converts a tcgc method to a Rust method for the specified client
68
84
  *
@@ -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;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;IAmIf,iCAAiC;IACjC,OAAO,CAAC,WAAW;IAWnB;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAWlB,4EAA4E;IAC5E,OAAO,CAAC,YAAY;IAcpB;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IA6J5B;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAqKnB;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IA6E5B;;;;;;;OAOG;IACH,OAAO,CAAC,0BAA0B;IA8BlC;;;;;OAKG;IACH,OAAO,CAAC,eAAe;CAcxB"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/tcgcadapter/adapter.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIjD,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;IAmIf,iCAAiC;IACjC,OAAO,CAAC,WAAW;IAWnB;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAWlB,4EAA4E;IAC5E,OAAO,CAAC,YAAY;IAcpB;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IAiN5B;;;;;;OAMG;IACH,OAAO,CAAC,yBAAyB;IAajC;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IA8B5B;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IA+KnB;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IA2F5B;;;;;;;OAOG;IACH,OAAO,CAAC,0BAA0B;IA8BlC;;;;;OAKG;IACH,OAAO,CAAC,eAAe;CAcxB"}
@@ -344,6 +344,7 @@ export class Adapter {
344
344
  * @returns a Rust client
345
345
  */
346
346
  recursiveAdaptClient(client, parent) {
347
+ var _a;
347
348
  let clientName = client.name;
348
349
  if (parent) {
349
350
  // for hierarchical clients, the child client names are built
@@ -369,7 +370,7 @@ export class Adapter {
369
370
  rustClient.docs.summary = client.summary;
370
371
  rustClient.docs.description = client.doc;
371
372
  rustClient.parent = parent;
372
- rustClient.fields.push(new rust.ClientParameter('pipeline', new rust.ExternalType(this.crate, 'azure_core', 'Pipeline')));
373
+ rustClient.fields.push(new rust.StructField('pipeline', false, new rust.ExternalType(this.crate, 'azure_core', 'Pipeline')));
373
374
  // anything other than public means non-instantiable client
374
375
  if (client.initialization.access === 'public') {
375
376
  const clientOptionsStruct = new rust.Struct(`${rustClient.name}Options`, true);
@@ -390,71 +391,116 @@ export class Adapter {
390
391
  AuthTypes[AuthTypes["WithAut"] = 2] = "WithAut";
391
392
  })(AuthTypes || (AuthTypes = {}));
392
393
  let authType = AuthTypes.Default;
394
+ /**
395
+ * processes a credendial, potentially adding its supporting client constructor
396
+ *
397
+ * @param cred the credential type to process
398
+ * @param constructable the constructable for the current Rust client
399
+ * @param throwOnDefault when true, throws an error on unsupported credential types
400
+ * @returns the AuthTypes enum for the credential that was handled, or AuthTypes.Default if none were
401
+ */
402
+ const processCredential = (cred, constructable, throwOnDefault) => {
403
+ switch (cred.type) {
404
+ case 'noAuth':
405
+ return AuthTypes.NoAuth;
406
+ case 'oauth2': {
407
+ constructable.constructors.push(this.createTokenCredentialCtor(cred));
408
+ return AuthTypes.WithAut;
409
+ }
410
+ default:
411
+ if (throwOnDefault) {
412
+ throw new Error(`credential scheme type ${cred.type} NYI`);
413
+ }
414
+ return AuthTypes.Default;
415
+ }
416
+ };
393
417
  const ctorParams = new Array();
394
418
  for (const param of client.initialization.properties) {
395
419
  switch (param.kind) {
396
420
  case 'credential':
397
421
  switch (param.type.kind) {
398
422
  case 'credential':
399
- switch (param.type.scheme.type) {
400
- case 'noAuth':
401
- authType |= AuthTypes.NoAuth;
402
- break;
403
- case 'oauth2': {
404
- authType |= AuthTypes.WithAut;
405
- if (param.type.scheme.flows.length === 0) {
406
- throw new Error(`no flows defined for credential type ${param.type.scheme.type}`);
407
- }
408
- const scopes = new Array();
409
- for (const scope of param.type.scheme.flows[0].scopes) {
410
- scopes.push(scope.value);
411
- }
412
- const ctorTokenCredential = new rust.Constructor('new');
413
- ctorTokenCredential.parameters.push(new rust.ClientParameter('credential', new rust.Arc(new rust.TokenCredential(this.crate, scopes))));
414
- rustClient.constructable.constructors.push(ctorTokenCredential);
415
- break;
416
- }
417
- default:
418
- // TODO: https://github.com/Azure/typespec-rust/issues/57
419
- throw new Error(`credential scheme type ${param.type.scheme.type} NYI`);
420
- }
423
+ authType |= processCredential(param.type.scheme, rustClient.constructable, true);
421
424
  break;
422
- case 'union':
423
- // TODO: https://github.com/Azure/typespec-rust/issues/57
425
+ case 'union': {
426
+ const variantKinds = new Array();
427
+ for (const variantType of param.type.variantTypes) {
428
+ variantKinds.push(variantType.scheme.type);
429
+ // if OAuth2 is specified then emit that and skip any unsupported ones.
430
+ // this prevents emitting the with_no_credential constructor in cases
431
+ // where it might not actually be supported.
432
+ authType |= processCredential(variantType.scheme, rustClient.constructable, false);
433
+ }
434
+ // no supported credential types were specified
435
+ if (authType === AuthTypes.Default) {
436
+ throw new Error(`credential scheme types ${variantKinds.join()} NYI`);
437
+ }
424
438
  continue;
439
+ }
425
440
  }
426
441
  break;
427
- case 'endpoint':
428
- // for Rust, we always require a complete endpoint param, templated
429
- // endpoints, e.g. https://{something}.contoso.com isn't supported.
430
- // note that the types of the param and the field are slightly different
431
- ctorParams.push(new rust.ClientParameter(param.name, new rust.StringSlice(), true));
432
- rustClient.fields.push(new rust.ClientParameter(param.name, new rust.Url(this.crate)));
433
- break;
434
- case 'method': {
435
- let paramType;
436
- if (param.isApiVersionParam) {
437
- // we expose the api-version param as a String
438
- paramType = new rust.StringType();
439
- }
440
- else {
441
- paramType = this.getType(param.type);
442
+ case 'endpoint': {
443
+ let endpointType;
444
+ switch (param.type.kind) {
445
+ case 'endpoint':
446
+ // single endpoint without any supplemental path
447
+ endpointType = param.type;
448
+ break;
449
+ case 'union':
450
+ // this is a union of endpoints. the first is the endpoint plus
451
+ // the supplemental path. the second is a "raw" endpoint which
452
+ // requires the caller to provide the complete endpoint. we only
453
+ // expose the former at present. languages that support overloads
454
+ // MAY support both but it's not a requirement.
455
+ endpointType = param.type.variantTypes[0];
442
456
  }
443
- const paramName = snakeCaseName(param.name);
444
- rustClient.fields.push(new rust.ClientParameter(paramName, paramType));
445
- // client-side default value makes the param optional
446
- if (param.optional || param.clientDefaultValue) {
447
- const paramField = new rust.StructField(paramName, true, paramType);
448
- clientOptionsStruct.fields.push(paramField);
449
- if (param.clientDefaultValue) {
450
- paramField.defaultValue = `String::from("${param.clientDefaultValue}")`;
457
+ for (let i = 0; i < endpointType.templateArguments.length; ++i) {
458
+ const templateArg = endpointType.templateArguments[i];
459
+ if (i === 0) {
460
+ // the first template arg is always the endpoint parameter.
461
+ // note that the types of the param and the field are different.
462
+ // NOTE: we use param.name here instead of templateArg.name as
463
+ // the former has the fixed name "endpoint" which is what we want.
464
+ ctorParams.push(new rust.ClientMethodParameter(param.name, new rust.StringSlice(), false, true));
465
+ rustClient.fields.push(new rust.StructField(param.name, false, new rust.Url(this.crate)));
466
+ // if the server's URL is *only* the endpoint parameter then we're done.
467
+ // this is the param.type.kind === 'endpoint' case.
468
+ if (endpointType.serverUrl === `{${templateArg.serializedName}}`) {
469
+ break;
470
+ }
471
+ // there's either a suffix on the endpoint param, more template arguments, or both.
472
+ // either way we need to create supplemental info on the constructable.
473
+ // NOTE: we remove the {endpoint} segment and trailing forward slash as we use
474
+ // Url::join to concatenate the two and not string replacement.
475
+ let serverUrl = endpointType.serverUrl.replace(`{${templateArg.serializedName}}/`, '');
476
+ // NOTE: the behavior of Url::join requires that the path ends with a forward slash.
477
+ // if there are any query params, splice it in as required else just append it.
478
+ if (serverUrl.includes('?')) {
479
+ if (serverUrl[serverUrl.indexOf('?') - 1] !== '/') {
480
+ serverUrl = serverUrl.replace('?', '/?');
481
+ }
482
+ }
483
+ else if (serverUrl[serverUrl.length - 1] !== '/') {
484
+ serverUrl += '/';
485
+ }
486
+ rustClient.constructable.endpoint = new rust.SupplementalEndpoint(serverUrl);
487
+ continue;
451
488
  }
452
- }
453
- else {
454
- ctorParams.push(new rust.ClientParameter(paramName, paramType, false));
489
+ const clientParam = this.adaptClientParameter(templateArg, rustClient.constructable);
490
+ if (clientParam.kind !== 'clientEndpoint') {
491
+ throw new Error(`unexpected client parameter kind ${clientParam.kind}`);
492
+ }
493
+ (_a = rustClient.constructable.endpoint) === null || _a === void 0 ? void 0 : _a.parameters.push(clientParam);
494
+ ctorParams.push(clientParam);
455
495
  }
456
496
  break;
457
497
  }
498
+ case 'method': {
499
+ const clientParam = this.adaptClientParameter(param, rustClient.constructable);
500
+ rustClient.fields.push(new rust.StructField(clientParam.name, false, clientParam.type));
501
+ ctorParams.push(clientParam);
502
+ break;
503
+ }
458
504
  }
459
505
  }
460
506
  if (authType === AuthTypes.Default || (authType & AuthTypes.NoAuth) === AuthTypes.NoAuth) {
@@ -491,6 +537,59 @@ export class Adapter {
491
537
  this.crate.clients.push(rustClient);
492
538
  return rustClient;
493
539
  }
540
+ /**
541
+ * creates a client constructor for the TokenCredential type.
542
+ * the constructor is named new.
543
+ *
544
+ * @param cred the OAuth2 credential to adapt
545
+ * @returns a client constructor for TokenCredential
546
+ */
547
+ createTokenCredentialCtor(cred) {
548
+ if (cred.flows.length === 0) {
549
+ throw new Error(`no flows defined for credential type ${cred.type}`);
550
+ }
551
+ const scopes = new Array();
552
+ for (const scope of cred.flows[0].scopes) {
553
+ scopes.push(scope.value);
554
+ }
555
+ const ctorTokenCredential = new rust.Constructor('new');
556
+ ctorTokenCredential.parameters.push(new rust.ClientMethodParameter('credential', new rust.Arc(new rust.TokenCredential(this.crate, scopes)), false));
557
+ return ctorTokenCredential;
558
+ }
559
+ /**
560
+ * converts a tcgc client parameter to a Rust client parameter
561
+ *
562
+ * @param param the tcgc client parameter to convert
563
+ * @param constructable contains client construction info. if the param is optional, it will go in the options type
564
+ * @returns the Rust client parameter
565
+ */
566
+ adaptClientParameter(param, constructable) {
567
+ let paramType;
568
+ if (param.isApiVersionParam) {
569
+ // we expose the api-version param as a String
570
+ paramType = new rust.StringType();
571
+ }
572
+ else {
573
+ paramType = this.getType(param.type);
574
+ }
575
+ const paramName = snakeCaseName(param.name);
576
+ let optional = false;
577
+ // client-side default value makes the param optional
578
+ if (param.optional || param.clientDefaultValue) {
579
+ optional = true;
580
+ const paramField = new rust.StructField(paramName, true, paramType);
581
+ constructable.options.type.fields.push(paramField);
582
+ if (param.clientDefaultValue) {
583
+ paramField.defaultValue = `String::from("${param.clientDefaultValue}")`;
584
+ }
585
+ }
586
+ switch (param.kind) {
587
+ case 'method':
588
+ return new rust.ClientMethodParameter(paramName, paramType, optional);
589
+ case 'path':
590
+ return new rust.ClientEndpointParameter(paramName, paramType, optional, param.serializedName);
591
+ }
592
+ }
494
593
  /**
495
594
  * converts a tcgc method to a Rust method for the specified client
496
595
  *
@@ -509,7 +608,16 @@ export class Adapter {
509
608
  const pub = method.access === 'public';
510
609
  const methodOptions = new rust.MethodOptions(methodOptionsStruct);
511
610
  const httpMethod = method.operation.verb;
512
- const httpPath = method.operation.path;
611
+ // if path is more than just "/" strip off any leading forward slash.
612
+ // this is because Url::join will treat the path as absolute, overwriting
613
+ // any existing path on the endpoint.
614
+ // e.g. if endpoint is https://contoso.com/foo/bar and httpPath is /some/sub/path
615
+ // then calling Url::join will provide result https://contoso.com/some/sub/path
616
+ // which is not what we want.
617
+ let httpPath = method.operation.path;
618
+ if (httpPath.length > 1 && httpPath[0] === '/') {
619
+ httpPath = httpPath.slice(1);
620
+ }
513
621
  switch (method.kind) {
514
622
  case 'basic':
515
623
  rustMethod = new rust.AsyncMethod(methodName, rustClient, pub, methodOptions, httpMethod, httpPath);
@@ -659,9 +767,19 @@ export class Adapter {
659
767
  */
660
768
  adaptMethodParameter(param) {
661
769
  const paramLoc = param.onClient ? 'client' : 'method';
770
+ /**
771
+ * used to create keys for this.clientMethodParams
772
+ * @param param the param for which to create a key
773
+ * @returns the map's key
774
+ */
775
+ const getClientParamsKey = function (param) {
776
+ // include the param kind in the key name as a client param can be used
777
+ // in different places across methods (path/query)
778
+ return `${param.name}-${param.kind}`;
779
+ };
662
780
  // if this is a client method param, check if we've already adapted it
663
781
  if (paramLoc === 'client') {
664
- const clientMethodParam = this.clientMethodParams.get(param.name);
782
+ const clientMethodParam = this.clientMethodParams.get(getClientParamsKey(param));
665
783
  if (clientMethodParam) {
666
784
  return clientMethodParam;
667
785
  }
@@ -674,6 +792,9 @@ export class Adapter {
674
792
  adaptedParam = new rust.BodyParameter(paramName, paramLoc, param.optional, new rust.RequestContent(this.crate, paramType, this.adaptBodyFormat(param.defaultContentType)));
675
793
  break;
676
794
  }
795
+ case 'cookie':
796
+ // TODO: https://github.com/Azure/typespec-rust/issues/192
797
+ throw new Error('cookie parameters are not supported');
677
798
  case 'header':
678
799
  if (param.collectionFormat) {
679
800
  if (paramType.kind !== 'vector') {
@@ -726,7 +847,7 @@ export class Adapter {
726
847
  adaptedParam.docs.summary = param.summary;
727
848
  adaptedParam.docs.description = param.doc;
728
849
  if (paramLoc === 'client') {
729
- this.clientMethodParams.set(param.name, adaptedParam);
850
+ this.clientMethodParams.set(getClientParamsKey(param), adaptedParam);
730
851
  }
731
852
  return adaptedParam;
732
853
  }