common

package
v0.2.16 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 26, 2021 License: Apache-2.0 Imports: 9 Imported by: 15

Documentation

Index

Constants

View Source
const (
	DefaultAttempts int64 = 10
	DefaultDelay          = 500 * time.Millisecond
	DefaultTimeout        = 10 * time.Second
)

Variables

This section is empty.

Functions

func BytesToString added in v0.1.7

func BytesToString(b []byte) string

BytesToString converts byte slice type to string

func ConvertInterfaceToMapInterfaceInterface

func ConvertInterfaceToMapInterfaceInterface(in interface{}) (map[interface{}]interface{}, error)

ConvertInterfaceToMapInterfaceInterface converts input data which must be map type to map interface interface, it means each pair of key and value in the map will be interface type

func ConvertInterfaceToSliceInterface

func ConvertInterfaceToSliceInterface(in interface{}) ([]interface{}, error)

ConvertInterfaceToSliceInterface converts input data which must be slice type to interface slice, it means each element in the slice is interface type.

func ConvertNumberToString added in v0.1.7

func ConvertNumberToString(in interface{}) (string, error)

ConvertNumberToString tries to convert number to string, if input is neither number type nor string, it will return error

func CopyStructWithFields added in v0.2.3

func CopyStructWithFields(in interface{}, fields ...string) (interface{}, error)

CopyStructWithFields returns a new struct with only specified fields NOTE:

  1. tags and values of fields are exactly same
  2. only exported and addressable fields will be copied
  3. if any field in fields does not exist in the input struct, it returns error
  4. if values in input struct is a pointer, then value in the new struct will point to the same object
  5. returning struct is totally a new data type, so you could not use any (*type) assertion
  6. technically, for convenience purpose, this function creates a new struct as same as input struct, then removes fields that does not exist in the given fields

func CopyStructWithoutFields added in v0.2.3

func CopyStructWithoutFields(in interface{}, fields ...string) (interface{}, error)

CopyStructWithoutFields returns a new struct without specified fields, there are something you should know. NOTE: 1. tags and values of remaining fields are exactly same 2. only exported and addressable fields will be copied 3. if any field in fields does not exist in the input struct, it simply ignores 4. if values in input struct is a pointer, then value in the new struct will point to the same object 5. returning struct is totally a new data type, so you could not use any (*type) assertion

func ElementInSlice

func ElementInSlice(e interface{}, s interface{}) (bool, error)

ElementInSlice checks if given element is in the slice

func GetValueOfStruct added in v0.2.10

func GetValueOfStruct(in interface{}, field string) (interface{}, error)

GetValueOfStruct get value of specified field of input struct, the field must exist and be exported, otherwise, it will return an error, the first argument must be a pointer to struct

func KeyInMap

func KeyInMap(k interface{}, m interface{}) (bool, error)

KeyInMap checks if given key is in the map

func MarshalStructWithFields added in v0.2.3

func MarshalStructWithFields(in interface{}, fields ...string) ([]byte, error)

MarshalStructWithFields marshals input struct using json.Marshal() with given fields, first argument must be a pointer to struct, not the struct itself

func MarshalStructWithTag added in v0.2.15

func MarshalStructWithTag(in interface{}, tag string) ([]byte, error)

MarshalStructWithTag marshals input struct using json.Marshal() with fields that contain given tag, first argument must be a pointer to struct, not the struct itself

func MarshalStructWithoutFields added in v0.2.3

func MarshalStructWithoutFields(in interface{}, fields ...string) ([]byte, error)

MarshalStructWithFields marshals input struct using json.Marshal() without given fields, first argument must be a pointer to struct, not the struct itself

func Retry added in v0.1.4

func Retry(doFunc func() error, attempts int64, delay, timeout time.Duration) error

RetryWithRetryOption retries the func until it returns no error or reaches attempts limit or timed out, either one is earlier

func RetryWithRetryOption added in v0.1.4

func RetryWithRetryOption(doFunc func() error, opts ...RetryOption) (err error)

RetryWithRetryOption retries the func until it returns no error or reaches attempts limit or timed out, either one is earlier

func SetValueOfStruct added in v0.2.3

func SetValueOfStruct(in interface{}, field string, value interface{}) error

SetValueOfStruct set value of specified field of input struct, the field must exist and be exported, otherwise, it will return an error, the first argument must be a pointer to struct

func StringToBytes added in v0.1.7

func StringToBytes(s string) []byte

StringToBytes converts string type to byte slice

func TrimSpaceOfStructString

func TrimSpaceOfStructString(in interface{}) error

TrimSpaceOfStructString trims spaces of each member variable of the struct

func ValueInMap

func ValueInMap(v interface{}, m interface{}) (bool, error)

ValueInMap checks if given value is in the map

Types

type RetryOption added in v0.1.4

type RetryOption struct {
	Attempts int64
	Delay    time.Duration
	Timeout  time.Duration
}

RetryOption is options for Retry()

func NewRetryOption added in v0.1.4

func NewRetryOption(attempts int64, delay, timeout time.Duration) RetryOption

NewRetryOption returns RetryOption

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL