// Put stores an item in the database. // // See mdb_cursor_put. func (c *Cursor) Put(key, val []byte, flags uint) error { if len(key) == 0 { return c.putNilKey(flags) } vn := len(val) if vn == 0 { val = []byte{0} } ret := C.lmdbgo_mdb_cursor_put2( c._c, (*C.char)(unsafe.Pointer(&key[0])), C.size_t(len(key)), (*C.char)(unsafe.Pointer(&val[0])), C.size_t(len(val)), C.uint(flags), ) return operrno("mdb_cursor_put", ret) }
func (c *Cursor) putNilKey(flags uint) error { ret := C.lmdbgo_mdb_cursor_put2(c._c, nil, 0, nil, 0, C.uint(flags)) return operrno("mdb_cursor_put", ret) }