package squirrel import ( "fmt" ) type wherePart part func newWherePart(pred interface{}, args ...interface{}) Sqlizer { return &wherePart{pred: pred, args: args} } func (p wherePart) ToSql() (sql string, args []interface{}, err error) { switch pred := p.pred.(type) { case nil: // no-op case rawSqlizer: return pred.toSqlRaw() case Sqlizer: return pred.ToSql() case map[string]interface{}: return Eq(pred).ToSql() case string: sql = pred args = p.args default: err = fmt.Errorf("expected string-keyed map or string, not %T", pred) } return }