Платформа ЦРНП "Мирокод" для разработки проектов
https://git.mirocod.ru
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
21 lines
520 B
21 lines
520 B
// Copyright 2015 Huan Du. All rights reserved. |
|
// Licensed under the MIT license that can be found in the LICENSE file. |
|
|
|
package xstrings |
|
|
|
const bufferMaxInitGrowSize = 2048 |
|
|
|
// Lazy initialize a buffer. |
|
func allocBuffer(orig, cur string) *stringBuilder { |
|
output := &stringBuilder{} |
|
maxSize := len(orig) * 4 |
|
|
|
// Avoid to reserve too much memory at once. |
|
if maxSize > bufferMaxInitGrowSize { |
|
maxSize = bufferMaxInitGrowSize |
|
} |
|
|
|
output.Grow(maxSize) |
|
output.WriteString(orig[:len(orig)-len(cur)]) |
|
return output |
|
}
|
|
|