github.com/ravendb/ravendb-go-client@v0.0.0-20240229102137-4474ee7aa0fa/group_by_key_token.go (about) 1 package ravendb 2 3 import "strings" 4 5 var _ queryToken = &groupByKeyToken{} 6 7 type groupByKeyToken struct { 8 fieldName string 9 projectedName string 10 } 11 12 func newGroupByKeyToken(fieldName string, projectedName string) *groupByKeyToken { 13 return &groupByKeyToken{ 14 fieldName: fieldName, 15 projectedName: projectedName, 16 } 17 } 18 19 func createGroupByKeyToken(fieldName string, projectedName string) *groupByKeyToken { 20 return newGroupByKeyToken(fieldName, projectedName) 21 } 22 23 func (t *groupByKeyToken) writeTo(writer *strings.Builder) error { 24 writeQueryTokenField(writer, firstNonEmptyString(t.fieldName, "key()")) 25 26 if t.projectedName == "" || t.projectedName == t.fieldName { 27 return nil 28 } 29 30 writer.WriteString(" as ") 31 writer.WriteString(t.projectedName) 32 33 return nil 34 }