mirror of
https://source.quilibrium.com/quilibrium/ceremonyclient.git
synced 2024-11-11 02:35:18 +00:00
28 lines
529 B
Go
28 lines
529 B
Go
|
// Copyright 2020 The LevelDB-Go and Pebble Authors. All rights reserved. Use
|
||
|
// of this source code is governed by a BSD-style license that can be found in
|
||
|
// the LICENSE file.
|
||
|
|
||
|
package intern
|
||
|
|
||
|
import "sync"
|
||
|
|
||
|
var pool = sync.Pool{
|
||
|
New: func() interface{} {
|
||
|
return make(map[string]string)
|
||
|
},
|
||
|
}
|
||
|
|
||
|
// Bytes returns b converted to a string, interned.
|
||
|
func Bytes(b []byte) string {
|
||
|
m := pool.Get().(map[string]string)
|
||
|
c, ok := m[string(b)]
|
||
|
if ok {
|
||
|
pool.Put(m)
|
||
|
return c
|
||
|
}
|
||
|
s := string(b)
|
||
|
m[s] = s
|
||
|
pool.Put(m)
|
||
|
return s
|
||
|
}
|