github.com/cockroachdb/pebble@v0.0.0-20231214172447-ab4952c5f87b/objstorage/noop_readahead.go (about) 1 // Copyright 2023 The LevelDB-Go and Pebble Authors. All rights reserved. Use 2 // of this source code is governed by a BSD-style license that can be found in 3 // the LICENSE file. 4 5 package objstorage 6 7 import "context" 8 9 // NoopReadHandle can be used by Readable implementations that don't 10 // support read-ahead. 11 type NoopReadHandle struct { 12 readable Readable 13 } 14 15 // MakeNoopReadHandle initializes a NoopReadHandle. 16 func MakeNoopReadHandle(r Readable) NoopReadHandle { 17 return NoopReadHandle{readable: r} 18 } 19 20 var _ ReadHandle = (*NoopReadHandle)(nil) 21 22 // ReadAt is part of the ReadHandle interface. 23 func (h *NoopReadHandle) ReadAt(ctx context.Context, p []byte, off int64) error { 24 return h.readable.ReadAt(ctx, p, off) 25 } 26 27 // Close is part of the ReadHandle interface. 28 func (*NoopReadHandle) Close() error { return nil } 29 30 // SetupForCompaction is part of the ReadHandle interface. 31 func (*NoopReadHandle) SetupForCompaction() {} 32 33 // RecordCacheHit is part of the ReadHandle interface. 34 func (*NoopReadHandle) RecordCacheHit(_ context.Context, offset, size int64) {}