|
|
|
@ -1,3 +1,19 @@ |
|
|
|
|
/* |
|
|
|
|
* Minimalist Object Storage, (C) 2015 Minio, Inc. |
|
|
|
|
* |
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
|
* You may obtain a copy of the License at |
|
|
|
|
* |
|
|
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
* |
|
|
|
|
* Unless required by applicable law or agreed to in writing, software |
|
|
|
|
* distributed under the License is distributed on an "AS IS" BASIS, |
|
|
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
|
|
|
* See the License for the specific language governing permissions and |
|
|
|
|
* limitations under the License. |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
package donut |
|
|
|
|
|
|
|
|
|
import ( |
|
|
|
@ -5,7 +21,8 @@ import ( |
|
|
|
|
"strings" |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
func appendUniq(slice []string, i string) []string { |
|
|
|
|
// AppendU append to an input slice if the element is unique and provides a new slice
|
|
|
|
|
func AppendU(slice []string, i string) []string { |
|
|
|
|
for _, ele := range slice { |
|
|
|
|
if ele == i { |
|
|
|
|
return slice |
|
|
|
@ -14,17 +31,8 @@ func appendUniq(slice []string, i string) []string { |
|
|
|
|
return append(slice, i) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func filterPrefix(objects []string, prefix string) []string { |
|
|
|
|
var results []string |
|
|
|
|
for _, object := range objects { |
|
|
|
|
if strings.HasPrefix(object, prefix) { |
|
|
|
|
results = append(results, object) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return results |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func removePrefix(objects []string, prefix string) []string { |
|
|
|
|
// TrimPrefix trims off a prefix string from all the elements in a given slice
|
|
|
|
|
func TrimPrefix(objects []string, prefix string) []string { |
|
|
|
|
var results []string |
|
|
|
|
for _, object := range objects { |
|
|
|
|
results = append(results, strings.TrimPrefix(object, prefix)) |
|
|
|
@ -32,7 +40,8 @@ func removePrefix(objects []string, prefix string) []string { |
|
|
|
|
return results |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func filterDelimited(objects []string, delim string) []string { |
|
|
|
|
// HasNoDelimiter provides a new slice from an input slice which has elements without delimiter
|
|
|
|
|
func HasNoDelimiter(objects []string, delim string) []string { |
|
|
|
|
var results []string |
|
|
|
|
for _, object := range objects { |
|
|
|
|
if !strings.Contains(object, delim) { |
|
|
|
@ -42,7 +51,8 @@ func filterDelimited(objects []string, delim string) []string { |
|
|
|
|
return results |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func filterNotDelimited(objects []string, delim string) []string { |
|
|
|
|
// HasDelimiter provides a new slice from an input slice which has elements with a delimiter
|
|
|
|
|
func HasDelimiter(objects []string, delim string) []string { |
|
|
|
|
var results []string |
|
|
|
|
for _, object := range objects { |
|
|
|
|
if strings.Contains(object, delim) { |
|
|
|
@ -52,7 +62,8 @@ func filterNotDelimited(objects []string, delim string) []string { |
|
|
|
|
return results |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func extractDelimited(objects []string, delim string) []string { |
|
|
|
|
// SplitDelimiter provides a new slice from an input slice by splitting a delimiter
|
|
|
|
|
func SplitDelimiter(objects []string, delim string) []string { |
|
|
|
|
var results []string |
|
|
|
|
for _, object := range objects { |
|
|
|
|
parts := strings.Split(object, delim) |
|
|
|
@ -61,7 +72,8 @@ func extractDelimited(objects []string, delim string) []string { |
|
|
|
|
return results |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func uniqueObjects(objects []string) []string { |
|
|
|
|
// SortU sort a slice in lexical order, removing duplicate elements
|
|
|
|
|
func SortU(objects []string) []string { |
|
|
|
|
objectMap := make(map[string]string) |
|
|
|
|
for _, v := range objects { |
|
|
|
|
objectMap[v] = v |
|
|
|
|