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  }