| 1234567891011121314151617181920212223 |
- package common
- // Closable is the interface for objects that can release its resources.
- type Closable interface {
- // Close release all resources used by this object, including goroutines.
- Close() error
- }
- // Close closes the obj if it is a Closable.
- func Close(obj interface{}) error {
- if c, ok := obj.(Closable); ok {
- return c.Close()
- }
- return nil
- }
- // Runnable is the interface for objects that can start to work and stop on demand.
- type Runnable interface {
- // Start starts the runnable object. Upon the method returning nil, the object begins to function properly.
- Start() error
- Closable
- }
|