Package stmtcache is a cache that can be used to implement lazy prepared statements.
package stmtcache

import (
	

	
)

const (
	ModePrepare  = iota // Cache should prepare named statements.
	ModeDescribe        // Cache should prepare the anonymous prepared statement to only fetch the description of the statement.
)
Cache prepares and caches prepared statement descriptions.
Get returns the prepared statement description for sql preparing or describing the sql on the server as needed.
Clear removes all entries in the cache. Any prepared statements will be deallocated from the PostgreSQL session.
	Clear(ctx context.Context) error
StatementErrored informs the cache that the given statement resulted in an error when it was last used against the database. In some cases, this will cause the cache to maer that statement as bad. The bad statement will instead be flushed during the next call to Get that occurs outside of a failed transaction.
	StatementErrored(sql string, err error)
Len returns the number of cached prepared statement descriptions.
	Len() int
Cap returns the maximum number of cached prepared statement descriptions.
	Cap() int
Mode returns the mode of the cache (ModePrepare or ModeDescribe)
	Mode() int
}
New returns the preferred cache implementation for mode and cap. mode is either ModePrepare or ModeDescribe. cap is the maximum size of the cache.
func ( *pgconn.PgConn,  int,  int) Cache {
	mustBeValidMode()
	mustBeValidCap()

	return NewLRU(, , )
}

func ( int) {
	if  != ModePrepare &&  != ModeDescribe {
		panic("mode must be ModePrepare or ModeDescribe")
	}
}

func ( int) {
	if  < 1 {
		panic("cache must have cap of >= 1")
	}