func (op *Sort) Run() (reflect.Value, *errors.Error) {
	info, err := op.validate()
	if err != nil {
		return reflect.ValueOf(nil), err
	}
	if found := dispatch(op.ItemsValue, op.Func, info); found {
		return op.ItemsValue, nil
	}
	sort.Slice(op.ItemsValue.Interface(), func(i, j int) bool {
		left := op.ItemsValue.Index(i)
		right := op.ItemsValue.Index(j)
		argv := make([]reflect.Value, 2)
		argv[0] = left
		argv[1] = right
		return info.fnValue.Call(argv)[0].Int() < 0
	})
	return op.ItemsValue, nil
}
Run performs the operation
package sort
import (
	"github.com/wesovilabs/koazee/errors"
	"reflect"
	"sort"
)
const OpCode = "sort"
type Sort struct {
	ItemsType  reflect.Type
	ItemsValue reflect.Value
	Func       interface{}
}