Types
RS
provides a number of types that are meant to be used when defining a class.
When initialising a class instance, you must provide a type that matches the given validator.
foo <- Foo(
a = raw(1),
b = 1L,
c = "c",
d = data.frame(),
e = as.Date("2025-01-01")
)
Note that t_any
is a catch-all type that skips validation for a single field.
If you pass an incorrect value for a field, you will get an error like:
foo <- Foo(
a = raw(1),
b = 1L,
c = "c",
d = data.frame(),
e = list() ## Should be a t_date
)
"Invalid type <'list'> passed for field <'e'>."
You can also turn off validation entirely for the class via:
Class(
"Foo",
a := t_any,
b := t_int,
c := t_char,
d := t_dataframe,
e := t_date,
.validate = FALSE ## Add this here
)
This can give a slight (~10-20%) performance boost at the cost of no type validation.