protected void writeMemberValueInline()

in codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/ShapeValueGenerator.java [120:164]


    protected void writeMemberValueInline(GoWriter writer, MemberShape member, Node params) {
        Shape targetShape = model.expectShape(member.getTarget());

        // Null params need to be represented as zero values for member,
        if (params.isNullNode()) {
            if (pointableIndex.isNillable(member)) {
                writer.writeInline("nil");

            } else if (targetShape.getType() == ShapeType.STRING && targetShape.hasTrait(EnumTrait.class)) {
                Symbol enumSymbol = symbolProvider.toSymbol(targetShape);
                writer.writeInline("$T($S)", enumSymbol, "");

            } else {
                Symbol shapeSymbol = symbolProvider.toSymbol(member);
                writer.writeInline("func() (v $P) { return v }()", shapeSymbol);
            }
            return;
        }

        switch (targetShape.getType()) {
            case STRUCTURE:
                structDeclShapeValue(writer, member, params);
                break;

            case SET:
            case LIST:
                listDeclShapeValue(writer, member, params);
                break;

            case MAP:
                mapDeclShapeValue(writer, member, params);
                break;

            case UNION:
                unionDeclShapeValue(writer, member, params.expectObjectNode());
                break;

            case DOCUMENT:
                documentDeclShapeValue(writer, member, params);
                break;

            default:
                writeScalarPointerInline(writer, member, params);
        }
    }