common.go 724 B

123456789101112131415161718192021222324252627
  1. // Package common contains common utilities that are shared among other packages.
  2. // See each sub-package for detail.
  3. package common
  4. import (
  5. "errors"
  6. )
  7. var (
  8. ErrObjectReleased = errors.New("Object already released.")
  9. ErrBadConfiguration = errors.New("Bad configuration.")
  10. ErrObjectNotFound = errors.New("Object not found.")
  11. ErrDuplicatedName = errors.New("Duplicated name.")
  12. )
  13. // Releasable interface is for those types that can release its members.
  14. type Releasable interface {
  15. // Release releases all references to accelerate garbage collection.
  16. Release()
  17. }
  18. // Release tries to release the given object.
  19. func Release(v interface{}) {
  20. if releasable, ok := v.(Releasable); ok {
  21. releasable.Release()
  22. }
  23. }