summaryrefslogtreecommitdiffstats
path: root/vendor/xorm.io/builder/writer.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/xorm.io/builder/writer.go')
-rw-r--r--vendor/xorm.io/builder/writer.go42
1 files changed, 42 insertions, 0 deletions
diff --git a/vendor/xorm.io/builder/writer.go b/vendor/xorm.io/builder/writer.go
new file mode 100644
index 0000000000..fb4fae5c51
--- /dev/null
+++ b/vendor/xorm.io/builder/writer.go
@@ -0,0 +1,42 @@
+// Copyright 2019 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"
+ "strings"
+)
+
+// 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 {
+ *strings.Builder
+ args []interface{}
+}
+
+// NewWriter creates a new string writer
+func NewWriter() *BytesWriter {
+ w := &BytesWriter{
+ Builder: &strings.Builder{},
+ }
+ return w
+}
+
+// Append appends args to Writer
+func (w *BytesWriter) Append(args ...interface{}) {
+ w.args = append(w.args, args...)
+}
+
+// Args returns args
+func (w *BytesWriter) Args() []interface{} {
+ return w.args
+}