public static String getAsPointerIfPointable()

in codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/CodegenUtils.java [243:300]


    public static String getAsPointerIfPointable(
            Model model,
            GoWriter writer,
            GoPointableIndex pointableIndex,
            Shape shape,
            String operand
    ) {
        if (!pointableIndex.isPointable(shape)) {
            return operand;
        }

        if (shape.isMemberShape()) {
            shape = model.expectShape(shape.asMemberShape().get().getTarget());
        }

        String prefix = "";
        String suffix = ")";

        switch (shape.getType()) {
            case STRING:
                prefix = "ptr.String(";
                break;

            case BOOLEAN:
                prefix = "ptr.Bool(";
                break;

            case BYTE:
                prefix = "ptr.Int8(";
                break;
            case SHORT:
                prefix = "ptr.Int16(";
                break;
            case INTEGER:
                prefix = "ptr.Int32(";
                break;
            case LONG:
                prefix = "ptr.Int64(";
                break;

            case FLOAT:
                prefix = "ptr.Float32(";
                break;
            case DOUBLE:
                prefix = "ptr.Float64(";
                break;

            case TIMESTAMP:
                prefix = "ptr.Time(";
                break;

            default:
                return '&' + operand;
        }

        writer.addUseImports(SmithyGoDependency.SMITHY_PTR);
        return prefix + operand + suffix;
    }