github.com/altipla-consulting/ravendb-go-client@v0.1.3/query_token.go (about) 1 package ravendb 2 3 import "strings" 4 5 func isRqlTokenKeyword(s string) bool { 6 switch s { 7 case "as", "select", "where", "load", 8 "group", "order", "include": 9 return true 10 } 11 return false 12 } 13 14 // In Java QueryToken is a base class that defines virtual writeTo and provides 15 // writeField. We make writeField a stand-alone helper function and make queryToken 16 // an interface 17 type queryToken interface { 18 writeTo(*strings.Builder) error 19 } 20 21 func writeQueryTokenField(writer *strings.Builder, field string) { 22 isKeyWord := isRqlTokenKeyword(field) 23 if isKeyWord { 24 writer.WriteString("'") 25 writer.WriteString(field) 26 writer.WriteString("'") 27 return 28 } 29 30 writer.WriteString(field) 31 } 32 33 type singleStringToken string 34 35 func (t singleStringToken) writeTo(writer *strings.Builder) error { 36 writer.WriteString(string(t)) 37 return nil 38 }