github.com/loov/combiner@v0.1.0/testsuite/combiner.go (about) 1 package testsuite 2 3 type Combiner interface { 4 Do(op interface{}) 5 } 6 7 type Runner interface { 8 Combiner 9 Run() 10 Close() 11 } 12 13 type AsyncCombiner interface { 14 Combiner 15 DoAsync(op interface{}) 16 } 17 18 type Batcher interface { 19 Start() 20 Do(op interface{}) 21 Finish() 22 } 23 24 // Other possible designs 25 // 1. Include(v interface) 26 // 2. type Op func() 27 // 2. type Op interface { Execute() } 28 // 3. specialized