func (pr *PipelineResponse) Put() error {
	return checkStatusCode(pr.response)
}
Put sets the value for the requested key. It overwrites any previous value for that key and
it's thread-safe. It is safe to modify the contents of the arguments after Put returns but not before.
package client
import (
	"github.com/buraksezer/olric/internal/kvstore"
	"github.com/buraksezer/olric/internal/protocol"
)
type PipelineResponse struct {
	*Client
	response protocol.EncodeDecoder
}
func (pr *PipelineResponse) Operation() string {
	switch {
	case pr.response.OpCode() == protocol.OpPut:
		return "Put"
	case pr.response.OpCode() == protocol.OpPutIf:
		return "PutIf"
	case pr.response.OpCode() == protocol.OpPutIfEx:
		return "PutIfEx"
	case pr.response.OpCode() == protocol.OpGet:
		return "Get"
	case pr.response.OpCode() == protocol.OpPutEx:
		return "PutEx"
	case pr.response.OpCode() == protocol.OpDelete:
		return "Delete"
	case pr.response.OpCode() == protocol.OpIncr:
		return "Incr"
	case pr.response.OpCode() == protocol.OpDecr:
		return "Decr"
	case pr.response.OpCode() == protocol.OpGetPut:
		return "GetPut"
	case pr.response.OpCode() == protocol.OpLockWithTimeout:
		return "LockWithTimeout"
	case pr.response.OpCode() == protocol.OpUnlock:
		return "Unlock"
	case pr.response.OpCode() == protocol.OpDestroy:
		return "Destroy"
	default:
		return "unknown"
	}
}
func (pr *PipelineResponse) Get() (interface{}, error) {
	if err := checkStatusCode(pr.response); err != nil {
		return nil, err
	}
	entry := kvstore.NewEntry()
	entry.Decode(pr.response.Value())
	return pr.unmarshalValue(entry.Value())
}