code: func (n *node) Drop(data interface{}) error {
  	var bucketName string
  
  	v := reflect.ValueOf(data)
  	if v.Kind() != reflect.String {
  		info, err := extract(&v)
  		if err != nil {
  			return err
  		}
  
  		bucketName = info.Name
  	} else {
  		bucketName = v.Interface().(string)
  	}
  
  	return n.readWriteTx(func(tx *bolt.Tx) error {
  		return n.drop(tx, bucketName)
  	})
  }
docs: // Drop a bucket