33 lines
601 B
Go
33 lines
601 B
Go
package dbr
|
|
|
|
import "strings"
|
|
|
|
// Buffer collects strings, and values that are ready to be interpolated.
|
|
// This is used internally to efficiently build SQL statement.
|
|
type Buffer interface {
|
|
WriteString(string) (int, error)
|
|
String() string
|
|
|
|
WriteValue(v ...interface{}) (err error)
|
|
Value() []interface{}
|
|
}
|
|
|
|
type buffer struct {
|
|
strings.Builder
|
|
v []interface{}
|
|
}
|
|
|
|
// NewBuffer creates a new Buffer.
|
|
func NewBuffer() Buffer {
|
|
return &buffer{}
|
|
}
|
|
|
|
func (b *buffer) WriteValue(v ...interface{}) error {
|
|
b.v = append(b.v, v...)
|
|
return nil
|
|
}
|
|
|
|
func (b *buffer) Value() []interface{} {
|
|
return b.v
|
|
}
|