type CompactResponse … type PutResponse … type GetResponse … type DeleteResponse … type TxnResponse … type KV … type OpResponse … func (op OpResponse) Put() *PutResponse { … } func (op OpResponse) Get() *GetResponse { … } func (op OpResponse) Del() *DeleteResponse { … } func (op OpResponse) Txn() *TxnResponse { … } func (resp *PutResponse) OpResponse() OpResponse { … } func (resp *GetResponse) OpResponse() OpResponse { … } func (resp *DeleteResponse) OpResponse() OpResponse { … } func (resp *TxnResponse) OpResponse() OpResponse { … } type kv … func NewKV(c *Client) KV { … } func NewKVFromKVClient(remote pb.KVClient, c *Client) KV { … } func (kv *kv) Put(ctx context.Context, key, val string, opts ...OpOption) (*PutResponse, error) { … } func (kv *kv) Get(ctx context.Context, key string, opts ...OpOption) (*GetResponse, error) { … } func (kv *kv) Delete(ctx context.Context, key string, opts ...OpOption) (*DeleteResponse, error) { … } func (kv *kv) Compact(ctx context.Context, rev int64, opts ...CompactOption) (*CompactResponse, error) { … } func (kv *kv) Txn(ctx context.Context) Txn { … } func (kv *kv) Do(ctx context.Context, op Op) (OpResponse, error) { … }