func canonicalValue()

in internal/objectstore/objectstore.go [211:223]


func canonicalValue(value reflect.Value) (reflect.Value, error) {
	if value.Kind() == reflect.Ptr && value.Elem().Kind() == reflect.Struct {
		return value, nil
	}
	// If this is a pointer to something, de-references it.
	result := reflect.ValueOf(reflect.Indirect(value).Interface())

	if result.Kind() != reflect.Ptr {
		return reflect.Value{}, fmt.Errorf("illegal argument: %v is not a pointer", result.String())
	}

	return result, nil
}