func PrintString(document, definition *ast.Document) (string, error) {
	buff := &bytes.Buffer{}
	err := Print(document, definition, buff)
	out := buff.String()
	return out, err
}
PrintString is the same as Print but returns a string instead of writing to an io.Writer
package astprinter
import (
	"bytes"
	"io"
	"github.com/jensneuse/graphql-go-tools/pkg/ast"
	"github.com/jensneuse/graphql-go-tools/pkg/astvisitor"
	"github.com/jensneuse/graphql-go-tools/pkg/lexer/literal"
)
func Print(document, definition *ast.Document, out io.Writer) error {
	printer := Printer{}
	return printer.Print(document, definition, out)
}
func PrintIndent(document, definition *ast.Document, indent []byte, out io.Writer) error {
	printer := Printer{
		indent: indent,
	}
	return printer.Print(document, definition, out)
}