diff options
Diffstat (limited to 'types.go')
-rw-r--r-- | types.go | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/types.go b/types.go deleted file mode 100644 index abd2658..0000000 --- a/types.go +++ /dev/null @@ -1,48 +0,0 @@ -package main - -import ( - "fmt" - "sync" - - "github.com/Shugyousha/stasher/work" -) - -type Input interface { - Start() chan *work.Work -} - -type Filter interface { - Filter(*work.Work) *work.Work -} - -type Output interface { - Output(*work.Work) -} - -type Manager struct { - Input Input - Filter Filter - Output Output -} - -func (m *Manager) Run() { - var wg sync.WaitGroup - - ic := m.Input.Start() - for w := range ic { - wg.Add(1) - - go func(w *work.Work) { - nw := m.Filter.Filter(w) - err := nw.Error() - if err != nil { - fmt.Printf("Got an error when processing Work: %q\n", err) - } - m.Output.Output(nw) - - wg.Done() - }(w) - } - - wg.Wait() -} |