github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/libraries/go-xorm/builder/cond_expr.go (about) 1 package builder 2 3 import "fmt" 4 5 type expr struct { 6 sql string 7 args []interface{} 8 } 9 10 var _ Cond = expr{} 11 12 func Expr(sql string, args ...interface{}) Cond { 13 return expr{sql, args} 14 } 15 16 func (expr expr) WriteTo(w Writer) error { 17 if _, err := fmt.Fprint(w, expr.sql); err != nil { 18 return err 19 } 20 w.Append(expr.args...) 21 return nil 22 } 23 24 func (expr expr) And(conds ...Cond) Cond { 25 return And(expr, And(conds...)) 26 } 27 28 func (expr expr) Or(conds ...Cond) Cond { 29 return Or(expr, Or(conds...)) 30 } 31 32 func (expr expr) IsValid() bool { 33 return len(expr.sql) > 0 34 }