package clause import "strings" type Where struct { condition Clause } func NewWhere(condition Clause) *Where { return &Where{ condition: condition, } } func (clause *Where) Clause() (string, error) { if clause.condition == nil { return "", nil } conditionClause, err := clause.condition.Clause() if err != nil { return "", err } clauseBuilder := strings.Builder{} clauseBuilder.WriteString("WHERE\n") clauseBuilder.WriteString(" " + conditionClause) clauseBuilder.WriteString("\n") return clauseBuilder.String(), nil } func (clause *Where) Args() []any { if clause.condition == nil { return make([]any, 0) } return clause.condition.Args() }