Files
2026-07-07 20:30:02 +01:00

42 lines
673 B
Go

package sqimple
import (
"fmt"
"strings"
)
type OnClause struct {
column string
operator string
value any
and []*OnClause
}
func (o *OnClause) And(column, operator string, value any) *OnClause {
o.and = append(o.and, On(column, operator, value))
return o
}
func (o *OnClause) String() string {
strs := []string{fmt.Sprintf("%s %s %s", o.column, o.operator, o.value)}
for _, next := range o.and {
strs = append(strs, "and", next.String())
}
return strings.Join(strs, " ")
}
func On(column, operator string, value any) *OnClause {
o := &OnClause{
column: column,
operator: operator,
value: value,
and: []*OnClause{},
}
return o
}