code: func (n *node) DeleteStruct(data interface{}) error {
  	ref := reflect.ValueOf(data)
  
  	if !ref.IsValid() || ref.Kind() != reflect.Ptr || ref.Elem().Kind() != reflect.Struct {
  		return ErrStructPtrNeeded
  	}
  
  	cfg, err := extract(&ref)
  	if err != nil {
  		return err
  	}
  
  	id, err := toBytes(cfg.ID.Value.Interface(), n.codec)
  	if err != nil {
  		return err
  	}
  
  	return n.readWriteTx(func(tx *bolt.Tx) error {
  		return n.deleteStruct(tx, cfg, id)
  	})
  }
docs: // DeleteStruct deletes a structure from the associated bucket