slider_plus() and slider_minus() are developer functions used to register
special double dispatch methods to control how .before and .after are
subtracted from and added to .i. These allow developers to overcome some of
the restrictions around + and - when custom S3 types are involved. These
should only be used by package authors creating new index types.
slider_plus() allows you to override the default behavior of
.i + .after. When writing the S3 method, x will be .i, and y will
be .after.
slider_minus() allows you to override the default behavior of
.i - .before. When writing the S3 method, x will be .i, and y will
be .before.
These generics are a bit special. They work similarly to
vctrs::vec_ptype2() in that they are double dispatch methods that
dispatch off the types of both x and y. To write an S3 method for these
generics, write and export an S3 method of the form:
slider_plus.x_class.y_class <- function(x, y) {
# My method
}
Inheritance is not considered in the method lookup, and you cannot use
NextMethod() from within your method.
slider_plus(x, y)slider_minus(x, y)
For slider_plus(), x after adding y.
For slider_minus(), x after subtracting y.
The result should always be the same type and size as x.
[vector]
Two vectors to add or subtract.
x will always be the index, .i.
For slider_plus(), y will be .after.
For slider_minus(), y will be .before.
slider_plus(1, 2)
slider_minus(1, 2)
Run the code above in your browser using DataLab