github.com/RevenueMonster/sqlike@v1.0.6/sql/stmt/stmt.go (about)

     1  package sqlstmt
     2  
     3  import (
     4  	"sync"
     5  )
     6  
     7  var (
     8  	stmtPool = &sync.Pool{
     9  		New: func() interface{} {
    10  			return new(Statement)
    11  		},
    12  	}
    13  )
    14  
    15  // AcquireStmt :
    16  func AcquireStmt(fmt Formatter) *Statement {
    17  	x := stmtPool.Get().(*Statement)
    18  	x.fmt = fmt
    19  	return x
    20  }
    21  
    22  // ReleaseStmt :
    23  func ReleaseStmt(x *Statement) {
    24  	if x != nil {
    25  		x.Reset()
    26  		x.fmt = nil
    27  		defer stmtPool.Put(x)
    28  	}
    29  }