github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/pkg/scanners/azure/functions/take.go (about) 1 package functions 2 3 func Take(args ...interface{}) interface{} { 4 if len(args) != 2 { 5 return "" 6 } 7 8 count, ok := args[1].(int) 9 if !ok { 10 return "" 11 } 12 switch input := args[0].(type) { 13 case string: 14 if count > len(input) { 15 return input 16 } 17 return input[:count] 18 case interface{}: 19 switch iType := input.(type) { 20 case []int: 21 if count > len(iType) { 22 return iType 23 } 24 return iType[:count] 25 case []string: 26 if count > len(iType) { 27 return iType 28 } 29 return iType[:count] 30 case []bool: 31 if count > len(iType) { 32 return iType 33 } 34 return iType[:count] 35 case []float64: 36 if count > len(iType) { 37 return iType 38 } 39 return iType[:count] 40 case []interface{}: 41 if count > len(iType) { 42 return iType 43 } 44 return iType[:count] 45 } 46 } 47 48 return "" 49 }