func (receiver *Utility) Concatenate(sliceInterface1 interface{}, sliceInterface2 interface{}) (interface{}, error) {
	slice1, err := mapstructutilpkg.GetUtility().SliceToInterfaceSlice(sliceInterface1)
	if err != nil {
		logging.Logger().Debug(err.Error())
		return nil, err
	}
	slice2, err := mapstructutilpkg.GetUtility().SliceToInterfaceSlice(sliceInterface2)
	if err != nil {
		logging.Logger().Debug(err.Error())
		return nil, err
	}
	return append(slice1, slice2...), nil
}
Concatenate returns a slice concatenated two slices
package collection
import (
	"fmt"
	"github.com/qb0C80aE/clay/logging"
	mapstructutilpkg "github.com/qb0C80aE/clay/util/mapstruct"
)
var utility = &Utility{}
type Utility struct {
}
func GetUtility() *Utility {
	return utility
}
type MapInterface map[interface{}]interface{}
func (receiver *Utility) Slice(items ...interface{}) interface{} {
	slice := []interface{}{}
	return append(slice, items...)
}
func (receiver *Utility) SubSlice(sliceInterface interface{}, begin int, end int) (interface{}, error) {
	slice, err := mapstructutilpkg.GetUtility().SliceToInterfaceSlice(sliceInterface)
	if err != nil {
		logging.Logger().Debug(err.Error())
		return nil, err
	}
	if begin < 0 {
		if end < 0 {
			return slice[:], nil
		}
		return slice[:end], nil
	}
	if end < 0 {
		return slice[begin:], nil
	}
	return slice[begin:end], nil
}
func (receiver *Utility) Append(sliceInterface interface{}, item ...interface{}) (interface{}, error) {
	slice, err := mapstructutilpkg.GetUtility().SliceToInterfaceSlice(sliceInterface)
	if err != nil {
		logging.Logger().Debug(err.Error())
		return nil, err
	}
	return append(slice, item...), nil
}