/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 3.0.12
 *
 * This file is not intended to be easily readable and contains a number of
 * coding conventions designed to improve portability and efficiency. Do not make
 * changes to this file unless you know what you are doing--modify the SWIG
 * interface file instead.
 * ----------------------------------------------------------------------------- */

// source: ./ustore.i

package ustore

/*
#define intgo swig_intgo
typedef void *swig_voidp;

#include <stdint.h>


typedef long long intgo;
typedef unsigned long long uintgo;



typedef struct { char *p; intgo n; } _gostring_;
typedef struct { void* array; intgo len; intgo cap; } _goslice_;


typedef _gostring_ swig_type_1;
typedef _gostring_ swig_type_2;
typedef _gostring_ swig_type_3;
typedef _gostring_ swig_type_4;
typedef _gostring_ swig_type_5;
typedef _gostring_ swig_type_6;
typedef _gostring_ swig_type_7;
typedef _gostring_ swig_type_8;
typedef _gostring_ swig_type_9;
typedef _gostring_ swig_type_10;
typedef _gostring_ swig_type_11;
typedef _gostring_ swig_type_12;
typedef _gostring_ swig_type_13;
typedef _gostring_ swig_type_14;
typedef _gostring_ swig_type_15;
typedef _gostring_ swig_type_16;
typedef _gostring_ swig_type_17;
typedef _gostring_ swig_type_18;
typedef _gostring_ swig_type_19;
typedef long long swig_type_20;
typedef long long swig_type_21;
typedef long long swig_type_22;
typedef long long swig_type_23;
typedef _gostring_ swig_type_24;
typedef _gostring_ swig_type_25;
typedef _gostring_ swig_type_26;
typedef long long swig_type_27;
typedef long long swig_type_28;
typedef long long swig_type_29;
typedef long long swig_type_30;
typedef long long swig_type_31;
typedef long long swig_type_32;
typedef long long swig_type_33;
typedef _gostring_ swig_type_34;
typedef _gostring_ swig_type_35;
typedef _gostring_ swig_type_36;
typedef _gostring_ swig_type_37;
typedef _gostring_ swig_type_38;
typedef _gostring_ swig_type_39;
typedef _gostring_ swig_type_40;
typedef _gostring_ swig_type_41;
typedef _gostring_ swig_type_42;
typedef _gostring_ swig_type_43;
typedef _gostring_ swig_type_44;
typedef _gostring_ swig_type_45;
typedef _gostring_ swig_type_46;
typedef _gostring_ swig_type_47;
typedef _gostring_ swig_type_48;
typedef long long swig_type_49;
typedef _gostring_ swig_type_50;
typedef _gostring_ swig_type_51;
typedef long long swig_type_52;
typedef _gostring_ swig_type_53;
typedef long long swig_type_54;
typedef _gostring_ swig_type_55;
typedef long long swig_type_56;
typedef long long swig_type_57;
typedef _gostring_ swig_type_58;
typedef long long swig_type_59;
typedef _gostring_ swig_type_60;
typedef _gostring_ swig_type_61;
extern void _wrap_Swig_free_ustore_080055adca5ee225(uintptr_t arg1);
extern uintptr_t _wrap_Swig_malloc_ustore_080055adca5ee225(swig_intgo arg1);
extern uintptr_t _wrap_Status_OK_ustore_080055adca5ee225(void);
extern uintptr_t _wrap_Status_NotFound__SWIG_0_ustore_080055adca5ee225(swig_type_1 arg1, swig_type_2 arg2);
extern uintptr_t _wrap_Status_NotFound__SWIG_1_ustore_080055adca5ee225(swig_type_3 arg1);
extern uintptr_t _wrap_Status_Corruption__SWIG_0_ustore_080055adca5ee225(swig_type_4 arg1, swig_type_5 arg2);
extern uintptr_t _wrap_Status_Corruption__SWIG_1_ustore_080055adca5ee225(swig_type_6 arg1);
extern uintptr_t _wrap_Status_NotSupported__SWIG_0_ustore_080055adca5ee225(swig_type_7 arg1, swig_type_8 arg2);
extern uintptr_t _wrap_Status_NotSupported__SWIG_1_ustore_080055adca5ee225(swig_type_9 arg1);
extern uintptr_t _wrap_Status_InvalidArgument__SWIG_0_ustore_080055adca5ee225(swig_type_10 arg1, swig_type_11 arg2);
extern uintptr_t _wrap_Status_InvalidArgument__SWIG_1_ustore_080055adca5ee225(swig_type_12 arg1);
extern uintptr_t _wrap_Status_IOError__SWIG_0_ustore_080055adca5ee225(swig_type_13 arg1, swig_type_14 arg2);
extern uintptr_t _wrap_Status_IOError__SWIG_1_ustore_080055adca5ee225(swig_type_15 arg1);
extern _Bool _wrap_Status_ok_ustore_080055adca5ee225(uintptr_t arg1);
extern _Bool _wrap_Status_IsNotFound_ustore_080055adca5ee225(uintptr_t arg1);
extern _Bool _wrap_Status_IsCorruption_ustore_080055adca5ee225(uintptr_t arg1);
extern _Bool _wrap_Status_IsNotSupported_ustore_080055adca5ee225(uintptr_t arg1);
extern _Bool _wrap_Status_IsInvalidArgument_ustore_080055adca5ee225(uintptr_t arg1);
extern _Bool _wrap_Status_IsIOError_ustore_080055adca5ee225(uintptr_t arg1);
extern swig_type_16 _wrap_Status_ToString_ustore_080055adca5ee225(uintptr_t arg1);
extern uintptr_t _wrap_new_Status_ustore_080055adca5ee225(void);
extern void _wrap_delete_Status_ustore_080055adca5ee225(uintptr_t arg1);
extern uintptr_t _wrap_new_PairStatusString__SWIG_0_ustore_080055adca5ee225(void);
extern uintptr_t _wrap_new_PairStatusString__SWIG_1_ustore_080055adca5ee225(uintptr_t arg1, swig_type_17 arg2);
extern uintptr_t _wrap_new_PairStatusString__SWIG_2_ustore_080055adca5ee225(uintptr_t arg1);
extern void _wrap_PairStatusString_first_set_ustore_080055adca5ee225(uintptr_t arg1, uintptr_t arg2);
extern uintptr_t _wrap_PairStatusString_first_get_ustore_080055adca5ee225(uintptr_t arg1);
extern void _wrap_PairStatusString_second_set_ustore_080055adca5ee225(uintptr_t arg1, swig_type_18 arg2);
extern swig_type_19 _wrap_PairStatusString_second_get_ustore_080055adca5ee225(uintptr_t arg1);
extern void _wrap_delete_PairStatusString_ustore_080055adca5ee225(uintptr_t arg1);
extern uintptr_t _wrap_new_VecStr__SWIG_0_ustore_080055adca5ee225(void);
extern uintptr_t _wrap_new_VecStr__SWIG_1_ustore_080055adca5ee225(swig_type_20 arg1);
extern swig_type_21 _wrap_VecStr_size_ustore_080055adca5ee225(uintptr_t arg1);
extern swig_type_22 _wrap_VecStr_capacity_ustore_080055adca5ee225(uintptr_t arg1);
extern void _wrap_VecStr_reserve_ustore_080055adca5ee225(uintptr_t arg1, swig_type_23 arg2);
extern _Bool _wrap_VecStr_isEmpty_ustore_080055adca5ee225(uintptr_t arg1);
extern void _wrap_VecStr_clear_ustore_080055adca5ee225(uintptr_t arg1);
extern void _wrap_VecStr_add_ustore_080055adca5ee225(uintptr_t arg1, swig_type_24 arg2);
extern swig_type_25 _wrap_VecStr_get_ustore_080055adca5ee225(uintptr_t arg1, swig_intgo arg2);
extern void _wrap_VecStr_set_ustore_080055adca5ee225(uintptr_t arg1, swig_intgo arg2, swig_type_26 arg3);
extern void _wrap_delete_VecStr_ustore_080055adca5ee225(uintptr_t arg1);
extern uintptr_t _wrap_new_VecUll__SWIG_0_ustore_080055adca5ee225(void);
extern uintptr_t _wrap_new_VecUll__SWIG_1_ustore_080055adca5ee225(swig_type_27 arg1);
extern swig_type_28 _wrap_VecUll_size_ustore_080055adca5ee225(uintptr_t arg1);
extern swig_type_29 _wrap_VecUll_capacity_ustore_080055adca5ee225(uintptr_t arg1);
extern void _wrap_VecUll_reserve_ustore_080055adca5ee225(uintptr_t arg1, swig_type_30 arg2);
extern _Bool _wrap_VecUll_isEmpty_ustore_080055adca5ee225(uintptr_t arg1);
extern void _wrap_VecUll_clear_ustore_080055adca5ee225(uintptr_t arg1);
extern void _wrap_VecUll_add_ustore_080055adca5ee225(uintptr_t arg1, swig_type_31 arg2);
extern swig_type_32 _wrap_VecUll_get_ustore_080055adca5ee225(uintptr_t arg1, swig_intgo arg2);
extern void _wrap_VecUll_set_ustore_080055adca5ee225(uintptr_t arg1, swig_intgo arg2, swig_type_33 arg3);
extern void _wrap_delete_VecUll_ustore_080055adca5ee225(uintptr_t arg1);
extern _Bool _wrap_StateIterator_Next_ustore_080055adca5ee225(uintptr_t arg1);
extern _Bool _wrap_StateIterator_Valid_ustore_080055adca5ee225(uintptr_t arg1);
extern swig_type_34 _wrap_StateIterator_Key_ustore_080055adca5ee225(uintptr_t arg1);
extern swig_type_35 _wrap_StateIterator_Value_ustore_080055adca5ee225(uintptr_t arg1);
extern void _wrap_delete_StateIterator_ustore_080055adca5ee225(uintptr_t arg1);
extern uintptr_t _wrap_new_KVDB__SWIG_0_ustore_080055adca5ee225(swig_intgo arg1);
extern uintptr_t _wrap_new_KVDB__SWIG_1_ustore_080055adca5ee225(void);
extern void _wrap_KVDB_OutputChunkStorage_ustore_080055adca5ee225(uintptr_t arg1);
extern uintptr_t _wrap_KVDB_Get_ustore_080055adca5ee225(uintptr_t arg1, swig_type_36 arg2);
extern uintptr_t _wrap_KVDB_Put_ustore_080055adca5ee225(uintptr_t arg1, swig_type_37 arg2, swig_type_38 arg3);
extern uintptr_t _wrap_KVDB_GetBlock_ustore_080055adca5ee225(uintptr_t arg1, swig_type_39 arg2, swig_type_40 arg3);
extern uintptr_t _wrap_KVDB_PutBlock_ustore_080055adca5ee225(uintptr_t arg1, swig_type_41 arg2, swig_type_42 arg3);
extern void _wrap_KVDB_IterateState_ustore_080055adca5ee225(uintptr_t arg1, swig_type_43 arg2);
extern uintptr_t _wrap_KVDB_InitGlobalState_ustore_080055adca5ee225(uintptr_t arg1);
extern uintptr_t _wrap_KVDB_Commit_ustore_080055adca5ee225(uintptr_t arg1);
extern uintptr_t _wrap_KVDB_Range_ustore_080055adca5ee225(uintptr_t arg1, swig_type_44 arg2, swig_type_45 arg3);
extern _Bool _wrap_KVDB_PutState_ustore_080055adca5ee225(uintptr_t arg1, swig_type_46 arg2, swig_type_47 arg3, swig_type_48 arg4, swig_type_49 arg5, uintptr_t arg6, swig_type_50 arg7);
extern uintptr_t _wrap_KVDB_Hist_ustore_080055adca5ee225(uintptr_t arg1, swig_type_51 arg2, swig_type_52 arg3);
extern uintptr_t _wrap_KVDB_Backward_ustore_080055adca5ee225(uintptr_t arg1, swig_type_53 arg2, swig_type_54 arg3);
extern uintptr_t _wrap_KVDB_Forward_ustore_080055adca5ee225(uintptr_t arg1, swig_type_55 arg2, swig_type_56 arg3);
extern swig_type_57 _wrap_KVDB_GetLatestVersion_ustore_080055adca5ee225(uintptr_t arg1, swig_type_58 arg2);
extern void _wrap_delete_KVDB_ustore_080055adca5ee225(uintptr_t arg1);
extern uintptr_t _wrap_HistReturn_status_ustore_080055adca5ee225(uintptr_t arg1);
extern swig_type_59 _wrap_HistReturn_blk_idx_ustore_080055adca5ee225(uintptr_t arg1);
extern swig_type_60 _wrap_HistReturn_value_ustore_080055adca5ee225(uintptr_t arg1);
extern void _wrap_delete_HistReturn_ustore_080055adca5ee225(uintptr_t arg1);
extern uintptr_t _wrap_BackwardReturn_status_ustore_080055adca5ee225(uintptr_t arg1);
extern swig_type_61 _wrap_BackwardReturn_txnID_ustore_080055adca5ee225(uintptr_t arg1);
extern uintptr_t _wrap_BackwardReturn_dep_keys_ustore_080055adca5ee225(uintptr_t arg1);
extern uintptr_t _wrap_BackwardReturn_dep_blk_idx_ustore_080055adca5ee225(uintptr_t arg1);
extern void _wrap_delete_BackwardReturn_ustore_080055adca5ee225(uintptr_t arg1);
extern uintptr_t _wrap_ForwardReturn_status_ustore_080055adca5ee225(uintptr_t arg1);
extern uintptr_t _wrap_ForwardReturn_txnIDs_ustore_080055adca5ee225(uintptr_t arg1);
extern uintptr_t _wrap_ForwardReturn_forward_keys_ustore_080055adca5ee225(uintptr_t arg1);
extern uintptr_t _wrap_ForwardReturn_forward_blk_idx_ustore_080055adca5ee225(uintptr_t arg1);
extern void _wrap_delete_ForwardReturn_ustore_080055adca5ee225(uintptr_t arg1);
#undef intgo
*/
import "C"

import "unsafe"
import _ "runtime/cgo"
import "sync"


type _ unsafe.Pointer



var Swig_escape_always_false bool
var Swig_escape_val interface{}


type _swig_fnptr *byte
type _swig_memberptr *byte


type _ sync.Mutex


type swig_gostring struct { p uintptr; n int }
func swigCopyString(s string) string {
  p := *(*swig_gostring)(unsafe.Pointer(&s))
  r := string((*[0x7fffffff]byte)(unsafe.Pointer(p.p))[:p.n])
  Swig_free(p.p)
  return r
}

func Swig_free(arg1 uintptr) {
	_swig_i_0 := arg1
	C._wrap_Swig_free_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0))
}

func Swig_malloc(arg1 int) (_swig_ret uintptr) {
	var swig_r uintptr
	_swig_i_0 := arg1
	swig_r = (uintptr)(C._wrap_Swig_malloc_ustore_080055adca5ee225(C.swig_intgo(_swig_i_0)))
	return swig_r
}

type SwigcptrStatus uintptr

func (p SwigcptrStatus) Swigcptr() uintptr {
	return (uintptr)(p)
}

func (p SwigcptrStatus) SwigIsStatus() {
}

func StatusOK() (_swig_ret Status) {
	var swig_r Status
	swig_r = (Status)(SwigcptrStatus(C._wrap_Status_OK_ustore_080055adca5ee225()))
	return swig_r
}

func StatusNotFound__SWIG_0(arg1 string, arg2 string) (_swig_ret Status) {
	var swig_r Status
	_swig_i_0 := arg1
	_swig_i_1 := arg2
	swig_r = (Status)(SwigcptrStatus(C._wrap_Status_NotFound__SWIG_0_ustore_080055adca5ee225(*(*C.swig_type_1)(unsafe.Pointer(&_swig_i_0)), *(*C.swig_type_2)(unsafe.Pointer(&_swig_i_1)))))
	if Swig_escape_always_false {
		Swig_escape_val = arg1
	}
	if Swig_escape_always_false {
		Swig_escape_val = arg2
	}
	return swig_r
}

func StatusNotFound__SWIG_1(arg1 string) (_swig_ret Status) {
	var swig_r Status
	_swig_i_0 := arg1
	swig_r = (Status)(SwigcptrStatus(C._wrap_Status_NotFound__SWIG_1_ustore_080055adca5ee225(*(*C.swig_type_3)(unsafe.Pointer(&_swig_i_0)))))
	if Swig_escape_always_false {
		Swig_escape_val = arg1
	}
	return swig_r
}

func StatusNotFound(a ...interface{}) Status {
	argc := len(a)
	if argc == 1 {
		return StatusNotFound__SWIG_1(a[0].(string))
	}
	if argc == 2 {
		return StatusNotFound__SWIG_0(a[0].(string), a[1].(string))
	}
	panic("No match for overloaded function call")
}

func StatusCorruption__SWIG_0(arg1 string, arg2 string) (_swig_ret Status) {
	var swig_r Status
	_swig_i_0 := arg1
	_swig_i_1 := arg2
	swig_r = (Status)(SwigcptrStatus(C._wrap_Status_Corruption__SWIG_0_ustore_080055adca5ee225(*(*C.swig_type_4)(unsafe.Pointer(&_swig_i_0)), *(*C.swig_type_5)(unsafe.Pointer(&_swig_i_1)))))
	if Swig_escape_always_false {
		Swig_escape_val = arg1
	}
	if Swig_escape_always_false {
		Swig_escape_val = arg2
	}
	return swig_r
}

func StatusCorruption__SWIG_1(arg1 string) (_swig_ret Status) {
	var swig_r Status
	_swig_i_0 := arg1
	swig_r = (Status)(SwigcptrStatus(C._wrap_Status_Corruption__SWIG_1_ustore_080055adca5ee225(*(*C.swig_type_6)(unsafe.Pointer(&_swig_i_0)))))
	if Swig_escape_always_false {
		Swig_escape_val = arg1
	}
	return swig_r
}

func StatusCorruption(a ...interface{}) Status {
	argc := len(a)
	if argc == 1 {
		return StatusCorruption__SWIG_1(a[0].(string))
	}
	if argc == 2 {
		return StatusCorruption__SWIG_0(a[0].(string), a[1].(string))
	}
	panic("No match for overloaded function call")
}

func StatusNotSupported__SWIG_0(arg1 string, arg2 string) (_swig_ret Status) {
	var swig_r Status
	_swig_i_0 := arg1
	_swig_i_1 := arg2
	swig_r = (Status)(SwigcptrStatus(C._wrap_Status_NotSupported__SWIG_0_ustore_080055adca5ee225(*(*C.swig_type_7)(unsafe.Pointer(&_swig_i_0)), *(*C.swig_type_8)(unsafe.Pointer(&_swig_i_1)))))
	if Swig_escape_always_false {
		Swig_escape_val = arg1
	}
	if Swig_escape_always_false {
		Swig_escape_val = arg2
	}
	return swig_r
}

func StatusNotSupported__SWIG_1(arg1 string) (_swig_ret Status) {
	var swig_r Status
	_swig_i_0 := arg1
	swig_r = (Status)(SwigcptrStatus(C._wrap_Status_NotSupported__SWIG_1_ustore_080055adca5ee225(*(*C.swig_type_9)(unsafe.Pointer(&_swig_i_0)))))
	if Swig_escape_always_false {
		Swig_escape_val = arg1
	}
	return swig_r
}

func StatusNotSupported(a ...interface{}) Status {
	argc := len(a)
	if argc == 1 {
		return StatusNotSupported__SWIG_1(a[0].(string))
	}
	if argc == 2 {
		return StatusNotSupported__SWIG_0(a[0].(string), a[1].(string))
	}
	panic("No match for overloaded function call")
}

func StatusInvalidArgument__SWIG_0(arg1 string, arg2 string) (_swig_ret Status) {
	var swig_r Status
	_swig_i_0 := arg1
	_swig_i_1 := arg2
	swig_r = (Status)(SwigcptrStatus(C._wrap_Status_InvalidArgument__SWIG_0_ustore_080055adca5ee225(*(*C.swig_type_10)(unsafe.Pointer(&_swig_i_0)), *(*C.swig_type_11)(unsafe.Pointer(&_swig_i_1)))))
	if Swig_escape_always_false {
		Swig_escape_val = arg1
	}
	if Swig_escape_always_false {
		Swig_escape_val = arg2
	}
	return swig_r
}

func StatusInvalidArgument__SWIG_1(arg1 string) (_swig_ret Status) {
	var swig_r Status
	_swig_i_0 := arg1
	swig_r = (Status)(SwigcptrStatus(C._wrap_Status_InvalidArgument__SWIG_1_ustore_080055adca5ee225(*(*C.swig_type_12)(unsafe.Pointer(&_swig_i_0)))))
	if Swig_escape_always_false {
		Swig_escape_val = arg1
	}
	return swig_r
}

func StatusInvalidArgument(a ...interface{}) Status {
	argc := len(a)
	if argc == 1 {
		return StatusInvalidArgument__SWIG_1(a[0].(string))
	}
	if argc == 2 {
		return StatusInvalidArgument__SWIG_0(a[0].(string), a[1].(string))
	}
	panic("No match for overloaded function call")
}

func StatusIOError__SWIG_0(arg1 string, arg2 string) (_swig_ret Status) {
	var swig_r Status
	_swig_i_0 := arg1
	_swig_i_1 := arg2
	swig_r = (Status)(SwigcptrStatus(C._wrap_Status_IOError__SWIG_0_ustore_080055adca5ee225(*(*C.swig_type_13)(unsafe.Pointer(&_swig_i_0)), *(*C.swig_type_14)(unsafe.Pointer(&_swig_i_1)))))
	if Swig_escape_always_false {
		Swig_escape_val = arg1
	}
	if Swig_escape_always_false {
		Swig_escape_val = arg2
	}
	return swig_r
}

func StatusIOError__SWIG_1(arg1 string) (_swig_ret Status) {
	var swig_r Status
	_swig_i_0 := arg1
	swig_r = (Status)(SwigcptrStatus(C._wrap_Status_IOError__SWIG_1_ustore_080055adca5ee225(*(*C.swig_type_15)(unsafe.Pointer(&_swig_i_0)))))
	if Swig_escape_always_false {
		Swig_escape_val = arg1
	}
	return swig_r
}

func StatusIOError(a ...interface{}) Status {
	argc := len(a)
	if argc == 1 {
		return StatusIOError__SWIG_1(a[0].(string))
	}
	if argc == 2 {
		return StatusIOError__SWIG_0(a[0].(string), a[1].(string))
	}
	panic("No match for overloaded function call")
}

func (arg1 SwigcptrStatus) Ok() (_swig_ret bool) {
	var swig_r bool
	_swig_i_0 := arg1
	swig_r = (bool)(C._wrap_Status_ok_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0)))
	return swig_r
}

func (arg1 SwigcptrStatus) IsNotFound() (_swig_ret bool) {
	var swig_r bool
	_swig_i_0 := arg1
	swig_r = (bool)(C._wrap_Status_IsNotFound_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0)))
	return swig_r
}

func (arg1 SwigcptrStatus) IsCorruption() (_swig_ret bool) {
	var swig_r bool
	_swig_i_0 := arg1
	swig_r = (bool)(C._wrap_Status_IsCorruption_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0)))
	return swig_r
}

func (arg1 SwigcptrStatus) IsNotSupported() (_swig_ret bool) {
	var swig_r bool
	_swig_i_0 := arg1
	swig_r = (bool)(C._wrap_Status_IsNotSupported_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0)))
	return swig_r
}

func (arg1 SwigcptrStatus) IsInvalidArgument() (_swig_ret bool) {
	var swig_r bool
	_swig_i_0 := arg1
	swig_r = (bool)(C._wrap_Status_IsInvalidArgument_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0)))
	return swig_r
}

func (arg1 SwigcptrStatus) IsIOError() (_swig_ret bool) {
	var swig_r bool
	_swig_i_0 := arg1
	swig_r = (bool)(C._wrap_Status_IsIOError_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0)))
	return swig_r
}

func (arg1 SwigcptrStatus) ToString() (_swig_ret string) {
	var swig_r string
	_swig_i_0 := arg1
	swig_r_p := C._wrap_Status_ToString_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0))
	swig_r = *(*string)(unsafe.Pointer(&swig_r_p))
	var swig_r_1 string
 swig_r_1 = swigCopyString(swig_r) 
	return swig_r_1
}

func NewStatus() (_swig_ret Status) {
	var swig_r Status
	swig_r = (Status)(SwigcptrStatus(C._wrap_new_Status_ustore_080055adca5ee225()))
	return swig_r
}

func DeleteStatus(arg1 Status) {
	_swig_i_0 := arg1.Swigcptr()
	C._wrap_delete_Status_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0))
}

type Status interface {
	Swigcptr() uintptr
	SwigIsStatus()
	Ok() (_swig_ret bool)
	IsNotFound() (_swig_ret bool)
	IsCorruption() (_swig_ret bool)
	IsNotSupported() (_swig_ret bool)
	IsInvalidArgument() (_swig_ret bool)
	IsIOError() (_swig_ret bool)
	ToString() (_swig_ret string)
}

type SwigcptrPairStatusString uintptr

func (p SwigcptrPairStatusString) Swigcptr() uintptr {
	return (uintptr)(p)
}

func (p SwigcptrPairStatusString) SwigIsPairStatusString() {
}

func NewPairStatusString__SWIG_0() (_swig_ret PairStatusString) {
	var swig_r PairStatusString
	swig_r = (PairStatusString)(SwigcptrPairStatusString(C._wrap_new_PairStatusString__SWIG_0_ustore_080055adca5ee225()))
	return swig_r
}

func NewPairStatusString__SWIG_1(arg1 Status, arg2 string) (_swig_ret PairStatusString) {
	var swig_r PairStatusString
	_swig_i_0 := arg1.Swigcptr()
	_swig_i_1 := arg2
	swig_r = (PairStatusString)(SwigcptrPairStatusString(C._wrap_new_PairStatusString__SWIG_1_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0), *(*C.swig_type_17)(unsafe.Pointer(&_swig_i_1)))))
	if Swig_escape_always_false {
		Swig_escape_val = arg2
	}
	return swig_r
}

func NewPairStatusString__SWIG_2(arg1 PairStatusString) (_swig_ret PairStatusString) {
	var swig_r PairStatusString
	_swig_i_0 := arg1.Swigcptr()
	swig_r = (PairStatusString)(SwigcptrPairStatusString(C._wrap_new_PairStatusString__SWIG_2_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0))))
	return swig_r
}

func NewPairStatusString(a ...interface{}) PairStatusString {
	argc := len(a)
	if argc == 0 {
		return NewPairStatusString__SWIG_0()
	}
	if argc == 1 {
		return NewPairStatusString__SWIG_2(a[0].(PairStatusString))
	}
	if argc == 2 {
		return NewPairStatusString__SWIG_1(a[0].(Status), a[1].(string))
	}
	panic("No match for overloaded function call")
}

func (arg1 SwigcptrPairStatusString) SetFirst(arg2 Status) {
	_swig_i_0 := arg1
	_swig_i_1 := arg2.Swigcptr()
	C._wrap_PairStatusString_first_set_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0), C.uintptr_t(_swig_i_1))
}

func (arg1 SwigcptrPairStatusString) GetFirst() (_swig_ret Status) {
	var swig_r Status
	_swig_i_0 := arg1
	swig_r = (Status)(SwigcptrStatus(C._wrap_PairStatusString_first_get_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0))))
	return swig_r
}

func (arg1 SwigcptrPairStatusString) SetSecond(arg2 string) {
	_swig_i_0 := arg1
	_swig_i_1 := arg2
	C._wrap_PairStatusString_second_set_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0), *(*C.swig_type_18)(unsafe.Pointer(&_swig_i_1)))
	if Swig_escape_always_false {
		Swig_escape_val = arg2
	}
}

func (arg1 SwigcptrPairStatusString) GetSecond() (_swig_ret string) {
	var swig_r string
	_swig_i_0 := arg1
	swig_r_p := C._wrap_PairStatusString_second_get_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0))
	swig_r = *(*string)(unsafe.Pointer(&swig_r_p))
	var swig_r_1 string
 swig_r_1 = swigCopyString(swig_r) 
	return swig_r_1
}

func DeletePairStatusString(arg1 PairStatusString) {
	_swig_i_0 := arg1.Swigcptr()
	C._wrap_delete_PairStatusString_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0))
}

type PairStatusString interface {
	Swigcptr() uintptr
	SwigIsPairStatusString()
	SetFirst(arg2 Status)
	GetFirst() (_swig_ret Status)
	SetSecond(arg2 string)
	GetSecond() (_swig_ret string)
}

type SwigcptrVecStr uintptr

func (p SwigcptrVecStr) Swigcptr() uintptr {
	return (uintptr)(p)
}

func (p SwigcptrVecStr) SwigIsVecStr() {
}

func NewVecStr__SWIG_0() (_swig_ret VecStr) {
	var swig_r VecStr
	swig_r = (VecStr)(SwigcptrVecStr(C._wrap_new_VecStr__SWIG_0_ustore_080055adca5ee225()))
	return swig_r
}

func NewVecStr__SWIG_1(arg1 int64) (_swig_ret VecStr) {
	var swig_r VecStr
	_swig_i_0 := arg1
	swig_r = (VecStr)(SwigcptrVecStr(C._wrap_new_VecStr__SWIG_1_ustore_080055adca5ee225(C.swig_type_20(_swig_i_0))))
	return swig_r
}

func NewVecStr(a ...interface{}) VecStr {
	argc := len(a)
	if argc == 0 {
		return NewVecStr__SWIG_0()
	}
	if argc == 1 {
		return NewVecStr__SWIG_1(a[0].(int64))
	}
	panic("No match for overloaded function call")
}

func (arg1 SwigcptrVecStr) Size() (_swig_ret int64) {
	var swig_r int64
	_swig_i_0 := arg1
	swig_r = (int64)(C._wrap_VecStr_size_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0)))
	return swig_r
}

func (arg1 SwigcptrVecStr) Capacity() (_swig_ret int64) {
	var swig_r int64
	_swig_i_0 := arg1
	swig_r = (int64)(C._wrap_VecStr_capacity_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0)))
	return swig_r
}

func (arg1 SwigcptrVecStr) Reserve(arg2 int64) {
	_swig_i_0 := arg1
	_swig_i_1 := arg2
	C._wrap_VecStr_reserve_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0), C.swig_type_23(_swig_i_1))
}

func (arg1 SwigcptrVecStr) IsEmpty() (_swig_ret bool) {
	var swig_r bool
	_swig_i_0 := arg1
	swig_r = (bool)(C._wrap_VecStr_isEmpty_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0)))
	return swig_r
}

func (arg1 SwigcptrVecStr) Clear() {
	_swig_i_0 := arg1
	C._wrap_VecStr_clear_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0))
}

func (arg1 SwigcptrVecStr) Add(arg2 string) {
	_swig_i_0 := arg1
	_swig_i_1 := arg2
	C._wrap_VecStr_add_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0), *(*C.swig_type_24)(unsafe.Pointer(&_swig_i_1)))
	if Swig_escape_always_false {
		Swig_escape_val = arg2
	}
}

func (arg1 SwigcptrVecStr) Get(arg2 int) (_swig_ret string) {
	var swig_r string
	_swig_i_0 := arg1
	_swig_i_1 := arg2
	swig_r_p := C._wrap_VecStr_get_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0), C.swig_intgo(_swig_i_1))
	swig_r = *(*string)(unsafe.Pointer(&swig_r_p))
	var swig_r_1 string
 swig_r_1 = swigCopyString(swig_r) 
	return swig_r_1
}

func (arg1 SwigcptrVecStr) Set(arg2 int, arg3 string) {
	_swig_i_0 := arg1
	_swig_i_1 := arg2
	_swig_i_2 := arg3
	C._wrap_VecStr_set_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0), C.swig_intgo(_swig_i_1), *(*C.swig_type_26)(unsafe.Pointer(&_swig_i_2)))
	if Swig_escape_always_false {
		Swig_escape_val = arg3
	}
}

func DeleteVecStr(arg1 VecStr) {
	_swig_i_0 := arg1.Swigcptr()
	C._wrap_delete_VecStr_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0))
}

type VecStr interface {
	Swigcptr() uintptr
	SwigIsVecStr()
	Size() (_swig_ret int64)
	Capacity() (_swig_ret int64)
	Reserve(arg2 int64)
	IsEmpty() (_swig_ret bool)
	Clear()
	Add(arg2 string)
	Get(arg2 int) (_swig_ret string)
	Set(arg2 int, arg3 string)
}

type SwigcptrVecUll uintptr

func (p SwigcptrVecUll) Swigcptr() uintptr {
	return (uintptr)(p)
}

func (p SwigcptrVecUll) SwigIsVecUll() {
}

func NewVecUll__SWIG_0() (_swig_ret VecUll) {
	var swig_r VecUll
	swig_r = (VecUll)(SwigcptrVecUll(C._wrap_new_VecUll__SWIG_0_ustore_080055adca5ee225()))
	return swig_r
}

func NewVecUll__SWIG_1(arg1 int64) (_swig_ret VecUll) {
	var swig_r VecUll
	_swig_i_0 := arg1
	swig_r = (VecUll)(SwigcptrVecUll(C._wrap_new_VecUll__SWIG_1_ustore_080055adca5ee225(C.swig_type_27(_swig_i_0))))
	return swig_r
}

func NewVecUll(a ...interface{}) VecUll {
	argc := len(a)
	if argc == 0 {
		return NewVecUll__SWIG_0()
	}
	if argc == 1 {
		return NewVecUll__SWIG_1(a[0].(int64))
	}
	panic("No match for overloaded function call")
}

func (arg1 SwigcptrVecUll) Size() (_swig_ret int64) {
	var swig_r int64
	_swig_i_0 := arg1
	swig_r = (int64)(C._wrap_VecUll_size_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0)))
	return swig_r
}

func (arg1 SwigcptrVecUll) Capacity() (_swig_ret int64) {
	var swig_r int64
	_swig_i_0 := arg1
	swig_r = (int64)(C._wrap_VecUll_capacity_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0)))
	return swig_r
}

func (arg1 SwigcptrVecUll) Reserve(arg2 int64) {
	_swig_i_0 := arg1
	_swig_i_1 := arg2
	C._wrap_VecUll_reserve_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0), C.swig_type_30(_swig_i_1))
}

func (arg1 SwigcptrVecUll) IsEmpty() (_swig_ret bool) {
	var swig_r bool
	_swig_i_0 := arg1
	swig_r = (bool)(C._wrap_VecUll_isEmpty_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0)))
	return swig_r
}

func (arg1 SwigcptrVecUll) Clear() {
	_swig_i_0 := arg1
	C._wrap_VecUll_clear_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0))
}

func (arg1 SwigcptrVecUll) Add(arg2 uint64) {
	_swig_i_0 := arg1
	_swig_i_1 := arg2
	C._wrap_VecUll_add_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0), C.swig_type_31(_swig_i_1))
}

func (arg1 SwigcptrVecUll) Get(arg2 int) (_swig_ret uint64) {
	var swig_r uint64
	_swig_i_0 := arg1
	_swig_i_1 := arg2
	swig_r = (uint64)(C._wrap_VecUll_get_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0), C.swig_intgo(_swig_i_1)))
	return swig_r
}

func (arg1 SwigcptrVecUll) Set(arg2 int, arg3 uint64) {
	_swig_i_0 := arg1
	_swig_i_1 := arg2
	_swig_i_2 := arg3
	C._wrap_VecUll_set_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0), C.swig_intgo(_swig_i_1), C.swig_type_33(_swig_i_2))
}

func DeleteVecUll(arg1 VecUll) {
	_swig_i_0 := arg1.Swigcptr()
	C._wrap_delete_VecUll_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0))
}

type VecUll interface {
	Swigcptr() uintptr
	SwigIsVecUll()
	Size() (_swig_ret int64)
	Capacity() (_swig_ret int64)
	Reserve(arg2 int64)
	IsEmpty() (_swig_ret bool)
	Clear()
	Add(arg2 uint64)
	Get(arg2 int) (_swig_ret uint64)
	Set(arg2 int, arg3 uint64)
}

type SwigcptrStateIterator uintptr

func (p SwigcptrStateIterator) Swigcptr() uintptr {
	return (uintptr)(p)
}

func (p SwigcptrStateIterator) SwigIsStateIterator() {
}

func (arg1 SwigcptrStateIterator) Next() (_swig_ret bool) {
	var swig_r bool
	_swig_i_0 := arg1
	swig_r = (bool)(C._wrap_StateIterator_Next_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0)))
	return swig_r
}

func (arg1 SwigcptrStateIterator) Valid() (_swig_ret bool) {
	var swig_r bool
	_swig_i_0 := arg1
	swig_r = (bool)(C._wrap_StateIterator_Valid_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0)))
	return swig_r
}

func (arg1 SwigcptrStateIterator) Key() (_swig_ret string) {
	var swig_r string
	_swig_i_0 := arg1
	swig_r_p := C._wrap_StateIterator_Key_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0))
	swig_r = *(*string)(unsafe.Pointer(&swig_r_p))
	var swig_r_1 string
 swig_r_1 = swigCopyString(swig_r) 
	return swig_r_1
}

func (arg1 SwigcptrStateIterator) Value() (_swig_ret string) {
	var swig_r string
	_swig_i_0 := arg1
	swig_r_p := C._wrap_StateIterator_Value_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0))
	swig_r = *(*string)(unsafe.Pointer(&swig_r_p))
	var swig_r_1 string
 swig_r_1 = swigCopyString(swig_r) 
	return swig_r_1
}

func DeleteStateIterator(arg1 StateIterator) {
	_swig_i_0 := arg1.Swigcptr()
	C._wrap_delete_StateIterator_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0))
}

type StateIterator interface {
	Swigcptr() uintptr
	SwigIsStateIterator()
	Next() (_swig_ret bool)
	Valid() (_swig_ret bool)
	Key() (_swig_ret string)
	Value() (_swig_ret string)
}

type SwigcptrKVDB uintptr

func (p SwigcptrKVDB) Swigcptr() uintptr {
	return (uintptr)(p)
}

func (p SwigcptrKVDB) SwigIsKVDB() {
}

func NewKVDB__SWIG_0(arg1 uint) (_swig_ret KVDB) {
	var swig_r KVDB
	_swig_i_0 := arg1
	swig_r = (KVDB)(SwigcptrKVDB(C._wrap_new_KVDB__SWIG_0_ustore_080055adca5ee225(C.swig_intgo(_swig_i_0))))
	return swig_r
}

func NewKVDB__SWIG_1() (_swig_ret KVDB) {
	var swig_r KVDB
	swig_r = (KVDB)(SwigcptrKVDB(C._wrap_new_KVDB__SWIG_1_ustore_080055adca5ee225()))
	return swig_r
}

func NewKVDB(a ...interface{}) KVDB {
	argc := len(a)
	if argc == 0 {
		return NewKVDB__SWIG_1()
	}
	if argc == 1 {
		return NewKVDB__SWIG_0(a[0].(uint))
	}
	panic("No match for overloaded function call")
}

func (arg1 SwigcptrKVDB) OutputChunkStorage() {
	_swig_i_0 := arg1
	C._wrap_KVDB_OutputChunkStorage_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0))
}

func (arg1 SwigcptrKVDB) Get(arg2 string) (_swig_ret PairStatusString) {
	var swig_r PairStatusString
	_swig_i_0 := arg1
	_swig_i_1 := arg2
	swig_r = (PairStatusString)(SwigcptrPairStatusString(C._wrap_KVDB_Get_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0), *(*C.swig_type_36)(unsafe.Pointer(&_swig_i_1)))))
	if Swig_escape_always_false {
		Swig_escape_val = arg2
	}
	return swig_r
}

func (arg1 SwigcptrKVDB) Put(arg2 string, arg3 string) (_swig_ret Status) {
	var swig_r Status
	_swig_i_0 := arg1
	_swig_i_1 := arg2
	_swig_i_2 := arg3
	swig_r = (Status)(SwigcptrStatus(C._wrap_KVDB_Put_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0), *(*C.swig_type_37)(unsafe.Pointer(&_swig_i_1)), *(*C.swig_type_38)(unsafe.Pointer(&_swig_i_2)))))
	if Swig_escape_always_false {
		Swig_escape_val = arg2
	}
	if Swig_escape_always_false {
		Swig_escape_val = arg3
	}
	return swig_r
}

func (arg1 SwigcptrKVDB) GetBlock(arg2 string, arg3 string) (_swig_ret PairStatusString) {
	var swig_r PairStatusString
	_swig_i_0 := arg1
	_swig_i_1 := arg2
	_swig_i_2 := arg3
	swig_r = (PairStatusString)(SwigcptrPairStatusString(C._wrap_KVDB_GetBlock_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0), *(*C.swig_type_39)(unsafe.Pointer(&_swig_i_1)), *(*C.swig_type_40)(unsafe.Pointer(&_swig_i_2)))))
	if Swig_escape_always_false {
		Swig_escape_val = arg2
	}
	if Swig_escape_always_false {
		Swig_escape_val = arg3
	}
	return swig_r
}

func (arg1 SwigcptrKVDB) PutBlock(arg2 string, arg3 string) (_swig_ret PairStatusString) {
	var swig_r PairStatusString
	_swig_i_0 := arg1
	_swig_i_1 := arg2
	_swig_i_2 := arg3
	swig_r = (PairStatusString)(SwigcptrPairStatusString(C._wrap_KVDB_PutBlock_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0), *(*C.swig_type_41)(unsafe.Pointer(&_swig_i_1)), *(*C.swig_type_42)(unsafe.Pointer(&_swig_i_2)))))
	if Swig_escape_always_false {
		Swig_escape_val = arg2
	}
	if Swig_escape_always_false {
		Swig_escape_val = arg3
	}
	return swig_r
}

func (arg1 SwigcptrKVDB) IterateState(arg2 string) {
	_swig_i_0 := arg1
	_swig_i_1 := arg2
	C._wrap_KVDB_IterateState_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0), *(*C.swig_type_43)(unsafe.Pointer(&_swig_i_1)))
	if Swig_escape_always_false {
		Swig_escape_val = arg2
	}
}

func (arg1 SwigcptrKVDB) InitGlobalState() (_swig_ret Status) {
	var swig_r Status
	_swig_i_0 := arg1
	swig_r = (Status)(SwigcptrStatus(C._wrap_KVDB_InitGlobalState_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0))))
	return swig_r
}

func (arg1 SwigcptrKVDB) Commit() (_swig_ret PairStatusString) {
	var swig_r PairStatusString
	_swig_i_0 := arg1
	swig_r = (PairStatusString)(SwigcptrPairStatusString(C._wrap_KVDB_Commit_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0))))
	return swig_r
}

func (arg1 SwigcptrKVDB) Range(arg2 string, arg3 string) (_swig_ret StateIterator) {
	var swig_r StateIterator
	_swig_i_0 := arg1
	_swig_i_1 := arg2
	_swig_i_2 := arg3
	swig_r = (StateIterator)(SwigcptrStateIterator(C._wrap_KVDB_Range_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0), *(*C.swig_type_44)(unsafe.Pointer(&_swig_i_1)), *(*C.swig_type_45)(unsafe.Pointer(&_swig_i_2)))))
	if Swig_escape_always_false {
		Swig_escape_val = arg2
	}
	if Swig_escape_always_false {
		Swig_escape_val = arg3
	}
	return swig_r
}

func (arg1 SwigcptrKVDB) PutState(arg2 string, arg3 string, arg4 string, arg5 uint64, arg6 VecStr, arg7 string) (_swig_ret bool) {
	var swig_r bool
	_swig_i_0 := arg1
	_swig_i_1 := arg2
	_swig_i_2 := arg3
	_swig_i_3 := arg4
	_swig_i_4 := arg5
	_swig_i_5 := arg6.Swigcptr()
	_swig_i_6 := arg7
	swig_r = (bool)(C._wrap_KVDB_PutState_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0), *(*C.swig_type_46)(unsafe.Pointer(&_swig_i_1)), *(*C.swig_type_47)(unsafe.Pointer(&_swig_i_2)), *(*C.swig_type_48)(unsafe.Pointer(&_swig_i_3)), C.swig_type_49(_swig_i_4), C.uintptr_t(_swig_i_5), *(*C.swig_type_50)(unsafe.Pointer(&_swig_i_6))))
	if Swig_escape_always_false {
		Swig_escape_val = arg2
	}
	if Swig_escape_always_false {
		Swig_escape_val = arg3
	}
	if Swig_escape_always_false {
		Swig_escape_val = arg4
	}
	if Swig_escape_always_false {
		Swig_escape_val = arg7
	}
	return swig_r
}

func (arg1 SwigcptrKVDB) Hist(arg2 string, arg3 uint64) (_swig_ret HistReturn) {
	var swig_r HistReturn
	_swig_i_0 := arg1
	_swig_i_1 := arg2
	_swig_i_2 := arg3
	swig_r = (HistReturn)(SwigcptrHistReturn(C._wrap_KVDB_Hist_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0), *(*C.swig_type_51)(unsafe.Pointer(&_swig_i_1)), C.swig_type_52(_swig_i_2))))
	if Swig_escape_always_false {
		Swig_escape_val = arg2
	}
	return swig_r
}

func (arg1 SwigcptrKVDB) Backward(arg2 string, arg3 uint64) (_swig_ret BackwardReturn) {
	var swig_r BackwardReturn
	_swig_i_0 := arg1
	_swig_i_1 := arg2
	_swig_i_2 := arg3
	swig_r = (BackwardReturn)(SwigcptrBackwardReturn(C._wrap_KVDB_Backward_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0), *(*C.swig_type_53)(unsafe.Pointer(&_swig_i_1)), C.swig_type_54(_swig_i_2))))
	if Swig_escape_always_false {
		Swig_escape_val = arg2
	}
	return swig_r
}

func (arg1 SwigcptrKVDB) Forward(arg2 string, arg3 uint64) (_swig_ret ForwardReturn) {
	var swig_r ForwardReturn
	_swig_i_0 := arg1
	_swig_i_1 := arg2
	_swig_i_2 := arg3
	swig_r = (ForwardReturn)(SwigcptrForwardReturn(C._wrap_KVDB_Forward_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0), *(*C.swig_type_55)(unsafe.Pointer(&_swig_i_1)), C.swig_type_56(_swig_i_2))))
	if Swig_escape_always_false {
		Swig_escape_val = arg2
	}
	return swig_r
}

func (arg1 SwigcptrKVDB) GetLatestVersion(arg2 string) (_swig_ret uint64) {
	var swig_r uint64
	_swig_i_0 := arg1
	_swig_i_1 := arg2
	swig_r = (uint64)(C._wrap_KVDB_GetLatestVersion_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0), *(*C.swig_type_58)(unsafe.Pointer(&_swig_i_1))))
	if Swig_escape_always_false {
		Swig_escape_val = arg2
	}
	return swig_r
}

func DeleteKVDB(arg1 KVDB) {
	_swig_i_0 := arg1.Swigcptr()
	C._wrap_delete_KVDB_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0))
}

type KVDB interface {
	Swigcptr() uintptr
	SwigIsKVDB()
	OutputChunkStorage()
	Get(arg2 string) (_swig_ret PairStatusString)
	Put(arg2 string, arg3 string) (_swig_ret Status)
	GetBlock(arg2 string, arg3 string) (_swig_ret PairStatusString)
	PutBlock(arg2 string, arg3 string) (_swig_ret PairStatusString)
	IterateState(arg2 string)
	InitGlobalState() (_swig_ret Status)
	Commit() (_swig_ret PairStatusString)
	Range(arg2 string, arg3 string) (_swig_ret StateIterator)
	PutState(arg2 string, arg3 string, arg4 string, arg5 uint64, arg6 VecStr, arg7 string) (_swig_ret bool)
	Hist(arg2 string, arg3 uint64) (_swig_ret HistReturn)
	Backward(arg2 string, arg3 uint64) (_swig_ret BackwardReturn)
	Forward(arg2 string, arg3 uint64) (_swig_ret ForwardReturn)
	GetLatestVersion(arg2 string) (_swig_ret uint64)
}

type SwigcptrHistReturn uintptr

func (p SwigcptrHistReturn) Swigcptr() uintptr {
	return (uintptr)(p)
}

func (p SwigcptrHistReturn) SwigIsHistReturn() {
}

func (arg1 SwigcptrHistReturn) Status() (_swig_ret Status) {
	var swig_r Status
	_swig_i_0 := arg1
	swig_r = (Status)(SwigcptrStatus(C._wrap_HistReturn_status_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0))))
	return swig_r
}

func (arg1 SwigcptrHistReturn) Blk_idx() (_swig_ret uint64) {
	var swig_r uint64
	_swig_i_0 := arg1
	swig_r = (uint64)(C._wrap_HistReturn_blk_idx_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0)))
	return swig_r
}

func (arg1 SwigcptrHistReturn) Value() (_swig_ret string) {
	var swig_r string
	_swig_i_0 := arg1
	swig_r_p := C._wrap_HistReturn_value_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0))
	swig_r = *(*string)(unsafe.Pointer(&swig_r_p))
	var swig_r_1 string
 swig_r_1 = swigCopyString(swig_r) 
	return swig_r_1
}

func DeleteHistReturn(arg1 HistReturn) {
	_swig_i_0 := arg1.Swigcptr()
	C._wrap_delete_HistReturn_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0))
}

type HistReturn interface {
	Swigcptr() uintptr
	SwigIsHistReturn()
	Status() (_swig_ret Status)
	Blk_idx() (_swig_ret uint64)
	Value() (_swig_ret string)
}

type SwigcptrBackwardReturn uintptr

func (p SwigcptrBackwardReturn) Swigcptr() uintptr {
	return (uintptr)(p)
}

func (p SwigcptrBackwardReturn) SwigIsBackwardReturn() {
}

func (arg1 SwigcptrBackwardReturn) Status() (_swig_ret Status) {
	var swig_r Status
	_swig_i_0 := arg1
	swig_r = (Status)(SwigcptrStatus(C._wrap_BackwardReturn_status_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0))))
	return swig_r
}

func (arg1 SwigcptrBackwardReturn) TxnID() (_swig_ret string) {
	var swig_r string
	_swig_i_0 := arg1
	swig_r_p := C._wrap_BackwardReturn_txnID_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0))
	swig_r = *(*string)(unsafe.Pointer(&swig_r_p))
	var swig_r_1 string
 swig_r_1 = swigCopyString(swig_r) 
	return swig_r_1
}

func (arg1 SwigcptrBackwardReturn) Dep_keys() (_swig_ret VecStr) {
	var swig_r VecStr
	_swig_i_0 := arg1
	swig_r = (VecStr)(SwigcptrVecStr(C._wrap_BackwardReturn_dep_keys_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0))))
	return swig_r
}

func (arg1 SwigcptrBackwardReturn) Dep_blk_idx() (_swig_ret VecUll) {
	var swig_r VecUll
	_swig_i_0 := arg1
	swig_r = (VecUll)(SwigcptrVecUll(C._wrap_BackwardReturn_dep_blk_idx_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0))))
	return swig_r
}

func DeleteBackwardReturn(arg1 BackwardReturn) {
	_swig_i_0 := arg1.Swigcptr()
	C._wrap_delete_BackwardReturn_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0))
}

type BackwardReturn interface {
	Swigcptr() uintptr
	SwigIsBackwardReturn()
	Status() (_swig_ret Status)
	TxnID() (_swig_ret string)
	Dep_keys() (_swig_ret VecStr)
	Dep_blk_idx() (_swig_ret VecUll)
}

type SwigcptrForwardReturn uintptr

func (p SwigcptrForwardReturn) Swigcptr() uintptr {
	return (uintptr)(p)
}

func (p SwigcptrForwardReturn) SwigIsForwardReturn() {
}

func (arg1 SwigcptrForwardReturn) Status() (_swig_ret Status) {
	var swig_r Status
	_swig_i_0 := arg1
	swig_r = (Status)(SwigcptrStatus(C._wrap_ForwardReturn_status_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0))))
	return swig_r
}

func (arg1 SwigcptrForwardReturn) TxnIDs() (_swig_ret VecStr) {
	var swig_r VecStr
	_swig_i_0 := arg1
	swig_r = (VecStr)(SwigcptrVecStr(C._wrap_ForwardReturn_txnIDs_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0))))
	return swig_r
}

func (arg1 SwigcptrForwardReturn) Forward_keys() (_swig_ret VecStr) {
	var swig_r VecStr
	_swig_i_0 := arg1
	swig_r = (VecStr)(SwigcptrVecStr(C._wrap_ForwardReturn_forward_keys_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0))))
	return swig_r
}

func (arg1 SwigcptrForwardReturn) Forward_blk_idx() (_swig_ret VecUll) {
	var swig_r VecUll
	_swig_i_0 := arg1
	swig_r = (VecUll)(SwigcptrVecUll(C._wrap_ForwardReturn_forward_blk_idx_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0))))
	return swig_r
}

func DeleteForwardReturn(arg1 ForwardReturn) {
	_swig_i_0 := arg1.Swigcptr()
	C._wrap_delete_ForwardReturn_ustore_080055adca5ee225(C.uintptr_t(_swig_i_0))
}

type ForwardReturn interface {
	Swigcptr() uintptr
	SwigIsForwardReturn()
	Status() (_swig_ret Status)
	TxnIDs() (_swig_ret VecStr)
	Forward_keys() (_swig_ret VecStr)
	Forward_blk_idx() (_swig_ret VecUll)
}


