code: func (ds *datastore) GetObject(key string, o KVObject) error {
  	if ds.sequential {
  		ds.Lock()
  		defer ds.Unlock()
  	}
  
  	if ds.cache != nil {
  		return ds.cache.get(key, o)
  	}
  
  	kvPair, err := ds.store.Get(key)
  	if err != nil {
  		return err
  	}
  
  	if err := o.SetValue(kvPair.Value); err != nil {
  		return err
  	}
  
  	// Make sure the object has a correct view of the DB index in
  	// case we need to modify it and update the DB.
  	o.SetIndex(kvPair.LastIndex)
  	return nil
  }
docs: // GetObject returns a record matching the key