|
- // 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
- }
|