filters.go
func Op(o Operation, field string, vleft ...interface{}) Ruler {
	if len(vleft) > 1 {
		panic("Op accept only zero or one val")
	}
	var val reflect.Value
	if len(vleft) == 1 {
		val = reflect.Indirect(reflect.ValueOf(vleft[0]))
		if val.IsValid() && val.Kind() == reflect.Interface {
			val = val.Elem()
		}
	}
	return &op{
		field:  field,
		vright: val,
		op:     o,
	}
}
func Op(o Operation, field string, vleft ...interface{}) Ruler {
	if len(vleft) > 1 {
		panic("Op accept only zero or one val")
	}
	var val reflect.Value
	if len(vleft) == 1 {
		val = reflect.Indirect(reflect.ValueOf(vleft[0]))
		if val.IsValid() && val.Kind() == reflect.Interface {
			val = val.Elem()
		}
	}
	return &op{
		field:  field,
		vright: val,
		op:     o,
	}
}
func Op ( o Operation , field string , vleft ... interface { } ) Ruler { if len ( vleft ) > 1 { panic ( " " ) } var val reflect . Value if len ( vleft ) == 1 { val = reflect . Indirect ( reflect . ValueOf ( vleft [ 0 ] ) ) if val . IsValid ( ) && val . Kind ( ) == reflect . Interface { val = val . Elem ( ) } } return & op { field : field , vright : val , op : o , } }
// Op is an operation in some field and with some value.
Op is an operation in some field and with some value .