/* Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments Copyright (C) ITsysCOM GmbH This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see */ package utils import ( "strings" ) // PrefixSliceItems iterates through slice and add a prefix before every element func PrefixSliceItems(prfx string, slc []string) (out []string) { out = make([]string, 0, len(slc)) for _, itm := range slc { if itm != EmptyString { out = append(out, prfx+itm) } } return } // SliceStringToIface converts slice of strings into a slice of interfaces func SliceStringToIface(slc []string) (ifc []any) { ifc = make([]any, len(slc)) for i, itm := range slc { ifc[i] = itm } return } // HasPrefixSlice iterates over slice members and returns true if one the element has that prefix func HasPrefixSlice(prfxs []string, el string) bool { for _, prfx := range prfxs { if strings.HasPrefix(el, prfx) { return true } } return false }