func dbPut(rdb *C.DBEngine, key MVCCKey, value []byte) error { if len(key.Key) == 0 { return emptyKeyError() } // *Put, *Get, and *Delete call memcpy() (by way of MemTable::Add) // when called, so we do not need to worry about these byte slices // being reclaimed by the GC. return statusToError(C.DBPut(rdb, goToCKey(key), goToCSlice(value))) }
// Put sets the given key to the value provided. // // The key and value byte slices may be reused safely. put takes a copy of // them before returning. func (r *RocksDB) Put(key proto.EncodedKey, value []byte) error { if len(key) == 0 { return emptyKeyError() } // *Put, *Get, and *Delete call memcpy() (by way of MemTable::Add) // when called, so we do not need to worry about these byte slices // being reclaimed by the GC. return statusToError(C.DBPut(r.rdb, goToCSlice(key), goToCSlice(value))) }