function getPointerValue()

in packages/codegen.go/src/example.ts [337:366]


function getPointerValue(type: go.PossibleType, valueString: string, byValue: boolean, imports?: ImportManager): string {
  if (byValue) {
    return valueString;
  }

  if (go.isPrimitiveType(type)) {
    let prtType = '';
    switch (type.typeName) {
      case 'any':
      case `bool`:
      case `byte`:
      case `rune`:
      case `string`:
        prtType = 'Ptr';
        break;
      default:
        prtType = `Ptr[${type.typeName}]`;
    }
    if (imports) imports.add('github.com/Azure/azure-sdk-for-go/sdk/azcore/to');
    return `to.${prtType}(${valueString})`;
  } else if (go.isConstantType(type) || go.isTimeType(type)) {
    if (imports) imports.add('github.com/Azure/azure-sdk-for-go/sdk/azcore/to');
    return `to.Ptr(${valueString})`;
  } else if (go.isLiteralValue(type)) {
    if (imports) imports.add('github.com/Azure/azure-sdk-for-go/sdk/azcore/to');
    return `to.Ptr(${valueString})`;
  } else {
    return `&${valueString}`;
  }
}