comparison pkg/controllers/common.go @ 5712:6270951dda28 revive-cleanup

/interface{}/any/
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Tue, 20 Feb 2024 22:37:51 +0100
parents 5f47eeea988d
children
comparison
equal deleted inserted replaced
5711:2dd155cc95ec 5712:6270951dda28
23 "gemma.intevation.de/gemma/pkg/log" 23 "gemma.intevation.de/gemma/pkg/log"
24 ) 24 )
25 25
26 type ( 26 type (
27 filterNode interface { 27 filterNode interface {
28 serialize(*strings.Builder, *[]interface{}) 28 serialize(*strings.Builder, *[]any)
29 } 29 }
30 30
31 filterTerm struct { 31 filterTerm struct {
32 format string 32 format string
33 args []interface{} 33 args []any
34 } 34 }
35 35
36 filterNot struct { 36 filterNot struct {
37 filterNode 37 filterNode
38 } 38 }
39 39
40 filterAnd []filterNode 40 filterAnd []filterNode
41 filterOr []filterNode 41 filterOr []filterNode
42 ) 42 )
43 43
44 func (ft *filterTerm) serialize(stmt *strings.Builder, args *[]interface{}) { 44 func (ft *filterTerm) serialize(stmt *strings.Builder, args *[]any) {
45 indices := make([]interface{}, len(ft.args)) 45 indices := make([]any, len(ft.args))
46 for i := range indices { 46 for i := range indices {
47 indices[i] = len(*args) + i + 1 47 indices[i] = len(*args) + i + 1
48 } 48 }
49 fmt.Fprintf(stmt, ft.format, indices...) 49 fmt.Fprintf(stmt, ft.format, indices...)
50 *args = append(*args, (*ft).args...) 50 *args = append(*args, (*ft).args...)
51 } 51 }
52 52
53 func buildFilterTerm(format string, args ...interface{}) *filterTerm { 53 func buildFilterTerm(format string, args ...any) *filterTerm {
54 return &filterTerm{format: format, args: args} 54 return &filterTerm{format: format, args: args}
55 } 55 }
56 56
57 func (fa filterAnd) serialize(stmt *strings.Builder, args *[]interface{}) { 57 func (fa filterAnd) serialize(stmt *strings.Builder, args *[]any) {
58 for i, node := range fa { 58 for i, node := range fa {
59 if i > 0 { 59 if i > 0 {
60 stmt.WriteString(" AND ") 60 stmt.WriteString(" AND ")
61 } 61 }
62 stmt.WriteByte('(') 62 stmt.WriteByte('(')
63 node.serialize(stmt, args) 63 node.serialize(stmt, args)
64 stmt.WriteByte(')') 64 stmt.WriteByte(')')
65 } 65 }
66 } 66 }
67 67
68 func (fo filterOr) serialize(stmt *strings.Builder, args *[]interface{}) { 68 func (fo filterOr) serialize(stmt *strings.Builder, args *[]any) {
69 for i, node := range fo { 69 for i, node := range fo {
70 if i > 0 { 70 if i > 0 {
71 stmt.WriteString(" OR ") 71 stmt.WriteString(" OR ")
72 } 72 }
73 stmt.WriteByte('(') 73 stmt.WriteByte('(')
74 node.serialize(stmt, args) 74 node.serialize(stmt, args)
75 stmt.WriteByte(')') 75 stmt.WriteByte(')')
76 } 76 }
77 } 77 }
78 78
79 func (fn *filterNot) serialize(stmt *strings.Builder, args *[]interface{}) { 79 func (fn *filterNot) serialize(stmt *strings.Builder, args *[]any) {
80 stmt.WriteString("NOT (") 80 stmt.WriteString("NOT (")
81 fn.filterNode.serialize(stmt, args) 81 fn.filterNode.serialize(stmt, args)
82 stmt.WriteByte(')') 82 stmt.WriteByte(')')
83 } 83 }
84 84