// Copyright (c) 2015, Emir Pasic. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package utils provides common utility functions. // // Provided functionalities: // - sorting // - comparators package utils import ( "fmt" "strconv" ) // ToString converts a value to string. func ToString(value interface{}) string { switch value := value.(type) { case string: return value case int8: return strconv.FormatInt(int64(value), 10) case int16: return strconv.FormatInt(int64(value), 10) case int32: return strconv.FormatInt(int64(value), 10) case int64: return strconv.FormatInt(value, 10) case uint8: return strconv.FormatUint(uint64(value), 10) case uint16: return strconv.FormatUint(uint64(value), 10) case uint32: return strconv.FormatUint(uint64(value), 10) case uint64: return strconv.FormatUint(value, 10) case float32: return strconv.FormatFloat(float64(value), 'g', -1, 64) case float64: return strconv.FormatFloat(value, 'g', -1, 64) case bool: return strconv.FormatBool(value) default: return fmt.Sprintf("%+v", value) } }