summaryrefslogtreecommitdiffstats
path: root/vendor/xorm.io/builder/cond.go
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2019-06-23 23:22:43 +0800
committerLauris BH <lauris@nix.lv>2019-06-23 18:22:43 +0300
commitaa7c34cf86081b71f796f6e5da60e62a3cda43ce (patch)
treec9e4b4f1490b43e942fa71b37748072d3fe441e8 /vendor/xorm.io/builder/cond.go
parentbaefea311f1a66a97f9a2779ad3342f4f8167d28 (diff)
downloadgitea-aa7c34cf86081b71f796f6e5da60e62a3cda43ce.tar.gz
gitea-aa7c34cf86081b71f796f6e5da60e62a3cda43ce.zip
Fix error log when loading issues caused by a xorm bug (#7271)
* fix error log when loading issues caused by a xorm bug * upgrade packages * fix fmt * fix Consistency * fix tests
Diffstat (limited to 'vendor/xorm.io/builder/cond.go')
-rw-r--r--vendor/xorm.io/builder/cond.go74
1 files changed, 74 insertions, 0 deletions
diff --git a/vendor/xorm.io/builder/cond.go b/vendor/xorm.io/builder/cond.go
new file mode 100644
index 0000000000..e44173bbd5
--- /dev/null
+++ b/vendor/xorm.io/builder/cond.go
@@ -0,0 +1,74 @@
+// Copyright 2016 The Xorm Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package builder
+
+import (
+ "io"
+)
+
+// Writer defines the interface
+type Writer interface {
+ io.Writer
+ Append(...interface{})
+}
+
+var _ Writer = NewWriter()
+
+// BytesWriter implments Writer and save SQL in bytes.Buffer
+type BytesWriter struct {
+ writer *StringBuilder
+ args []interface{}
+}
+
+// NewWriter creates a new string writer
+func NewWriter() *BytesWriter {
+ w := &BytesWriter{
+ writer: &StringBuilder{},
+ }
+ return w
+}
+
+// Write writes data to Writer
+func (s *BytesWriter) Write(buf []byte) (int, error) {
+ return s.writer.Write(buf)
+}
+
+// Append appends args to Writer
+func (s *BytesWriter) Append(args ...interface{}) {
+ s.args = append(s.args, args...)
+}
+
+// Cond defines an interface
+type Cond interface {
+ WriteTo(Writer) error
+ And(...Cond) Cond
+ Or(...Cond) Cond
+ IsValid() bool
+}
+
+type condEmpty struct{}
+
+var _ Cond = condEmpty{}
+
+// NewCond creates an empty condition
+func NewCond() Cond {
+ return condEmpty{}
+}
+
+func (condEmpty) WriteTo(w Writer) error {
+ return nil
+}
+
+func (condEmpty) And(conds ...Cond) Cond {
+ return And(conds...)
+}
+
+func (condEmpty) Or(conds ...Cond) Cond {
+ return Or(conds...)
+}
+
+func (condEmpty) IsValid() bool {
+ return false
+}