| 12345678910111213141516171819202122232425262728293031323334 |
- // Package common contains common utilities that are shared among other packages.
- // See each sub-package for detail.
- package common
- import (
- "errors"
- )
- var (
- ErrObjectReleased = errors.New("Object already released.")
- ErrBadConfiguration = errors.New("Bad configuration.")
- ErrObjectNotFound = errors.New("Object not found.")
- ErrDuplicatedName = errors.New("Duplicated name.")
- )
- // Releasable interface is for those types that can release its members.
- type Releasable interface {
- // Release releases all references to accelerate garbage collection.
- Release()
- }
- // Release tries to release the given object.
- func Release(v interface{}) {
- if releasable, ok := v.(Releasable); ok {
- releasable.Release()
- }
- }
- // Must panics if err is not nil.
- func Must(err error) {
- if err != nil {
- panic(err)
- }
- }
|