[#XX] patcher: Add closer

Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
This commit is contained in:
Airat Arifullin 2024-11-27 13:20:46 +03:00
parent cb813e27a8
commit 6a339ceeeb
2 changed files with 12 additions and 4 deletions

View file

@ -47,7 +47,7 @@ type RangeProvider interface {
// GetRange reads an original object payload by the given range.
// The method returns io.Reader over the data range only. This means if the data is read out,
// then GetRange has to be invoked to provide reader over the next range.
GetRange(ctx context.Context, rng *objectSDK.Range) io.Reader
GetRange(ctx context.Context, rng *objectSDK.Range) io.ReadCloser
}
type patcher struct {

View file

@ -41,14 +41,22 @@ type mockRangeProvider struct {
var _ RangeProvider = (*mockRangeProvider)(nil)
func (m *mockRangeProvider) GetRange(_ context.Context, rng *objectSDK.Range) io.Reader {
func (m *mockRangeProvider) GetRange(_ context.Context, rng *objectSDK.Range) io.ReadCloser {
offset := rng.GetOffset()
length := rng.GetLength()
if length == 0 {
return bytes.NewReader(m.originalObjectPayload[offset:])
return &readCloserImpl{bytes.NewReader(m.originalObjectPayload[offset:])}
}
return bytes.NewReader(m.originalObjectPayload[offset : offset+length])
return &readCloserImpl{bytes.NewReader(m.originalObjectPayload[offset : offset+length])}
}
type readCloserImpl struct {
*bytes.Reader
}
func (*readCloserImpl) Close() error {
return nil
}
func newTestObject() (*objectSDK.Object, oid.Address) {