package object type ( GetObjectStreamer interface { Recv() (*GetResponse, error) } PutObjectStreamer interface { Send(*PutRequest) error CloseAndRecv() (*PutResponse, error) } SearchObjectStreamer interface { Recv() (*SearchResponse, error) } GetRangeObjectStreamer interface { Recv() (*GetRangeResponse, error) } ) type ( getObjectGRPCStream struct { recv func() (*GetResponse, error) } putObjectGRPCStream struct { send func(*PutRequest) error closeAndRecv func() (*PutResponse, error) } searchObjectGRPCStream struct { recv func() (*SearchResponse, error) } getRangeObjectGRPCStream struct { recv func() (*GetRangeResponse, error) } ) func (s *getObjectGRPCStream) Recv() (*GetResponse, error) { return s.recv() } func (p *putObjectGRPCStream) Send(request *PutRequest) error { return p.send(request) } func (p *putObjectGRPCStream) CloseAndRecv() (*PutResponse, error) { return p.closeAndRecv() } func (s *searchObjectGRPCStream) Recv() (*SearchResponse, error) { return s.recv() } func (r *getRangeObjectGRPCStream) Recv() (*GetRangeResponse, error) { return r.recv() }