Skip to content

Instantly share code, notes, and snippets.

@mniak
Created September 18, 2023 20:27
Show Gist options
  • Save mniak/e71db16ce2b0e9da49962b92d04d1ed2 to your computer and use it in GitHub Desktop.
Save mniak/e71db16ce2b0e9da49962b92d04d1ed2 to your computer and use it in GitHub Desktop.
package duplicomp
type PessimisticCallerback struct {
succeded bool
successCallbacks []func()
failureCallbacks []func()
}
func (self *PessimisticCallerback) Callback() {
if self.succeded {
for _, dispose := range self.successCallbacks {
if dispose != nil {
dispose()
}
}
} else {
for _, dispose := range self.failureCallbacks {
if dispose != nil {
dispose()
}
}
}
}
func (self *PessimisticCallerback) OnFailure(fn func()) {
self.failureCallbacks = append(self.failureCallbacks, fn)
}
func (self *PessimisticCallerback) OnSuccess(fn func()) {
self.successCallbacks = append(self.successCallbacks, fn)
}
func (self *PessimisticCallerback) Succeeded() {
self.succeded = true
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment