diff options
| author | 2026-03-06 11:22:29 +0800 | |
|---|---|---|
| committer | 2026-03-06 11:22:29 +0800 | |
| commit | 374ca2159407c6f3ec786bc19e25da44ded62fcf (patch) | |
| tree | 4af6ccdb5057f84f0b55a2151231a8f33ed4b41e /internal/bufpool/class.go | |
| parent | diff/lines: Split files (diff) | |
| signature | No signature | |
internal/bufpool: Split files
Diffstat (limited to 'internal/bufpool/class.go')
| -rw-r--r-- | internal/bufpool/class.go | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/internal/bufpool/class.go b/internal/bufpool/class.go new file mode 100644 index 00000000..60842d5e --- /dev/null +++ b/internal/bufpool/class.go @@ -0,0 +1,23 @@ +package bufpool + +var sizeClasses = [...]int{ + DefaultBufferCap, + 64 << 10, + 128 << 10, + 256 << 10, + 512 << 10, + 1 << 20, + 2 << 20, + 4 << 20, + maxPooledBuffer, +} + +func classFor(size int) (idx, classCap int, ok bool) { + for i, class := range sizeClasses { + if size <= class { + return i, class, true + } + } + + return -1, size, false +} |
