diff options
Diffstat (limited to 'vendor/xorm.io/builder/writer.go')
-rw-r--r-- | vendor/xorm.io/builder/writer.go | 42 |
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 +} |