github.com/hellofresh/janus@v0.0.0-20230925145208-ce8de8183c67/cassandra/wrapper/session.go (about) 1 package wrapper 2 3 // Initializer is a common interface for functionality to start a new session 4 type Initializer interface { 5 NewSession() (Holder, error) 6 } 7 8 // Holder allows to store a close sessions 9 type Holder interface { 10 GetSession() SessionInterface 11 CloseSession() 12 } 13 14 // SessionInterface is an interface to wrap gocql methods used in Motiv 15 type SessionInterface interface { 16 Query( stmt string, values ...interface{}) QueryInterface 17 Close() 18 } 19 20 type QueryInterface interface { 21 Exec() error 22 Scan( dest ...interface{}) error 23 Iter() IterInterface 24 PageState(state []byte, ) QueryInterface 25 PageSize(n int, ) QueryInterface 26 } 27 28 type IterInterface interface { 29 Scan( dest ...interface{}) bool 30 WillSwitchPage() bool 31 PageState() []byte 32 Close() error 33 ScanAndClose( handle func() bool, dest ...interface{}) error 34 }