| // 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) |
| } |
| } |