diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2023-02-05 12:06:30 -0700 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2023-02-05 13:32:56 -0700 |
commit | 2d939c9c6e62395ed924fe7c5cd4c4b294e391a9 (patch) | |
tree | f292beebe17f48a56550bea1435808b965ce6764 /pool.go | |
parent | d69037701f6cdd4f5bb98c20af329c02ba89bb90 (diff) |
Rename to git.lukeshu.com/go/containers, split in to 2 separate packages
Diffstat (limited to 'pool.go')
-rw-r--r-- | pool.go | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/pool.go b/pool.go deleted file mode 100644 index c196085..0000000 --- a/pool.go +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright (C) 2022-2023 Luke Shumaker <lukeshu@lukeshu.com> -// -// SPDX-License-Identifier: GPL-2.0-or-later - -package typedsync - -import ( - "sync" -) - -type Pool[T any] struct { - New func() T - - inner sync.Pool -} - -func (p *Pool[T]) Get() (val T, ok bool) { - _val := p.inner.Get() - switch { - case _val != nil: - //nolint:forcetypeassert // Typed wrapper around untyped lib. - return _val.(T), true - case p.New != nil: - return p.New(), true - default: - var zero T - return zero, false - } -} - -func (p *Pool[T]) Put(val T) { - p.inner.Put(val) -} |