Move all methods of an R6 Class to an environmentSource:
leanify_r6 moves the content of an
R6::R6Class's functions to an environment,
usually the package's namespace, to save space during serialization of R6 objects.
leanify_package move all methods of all R6 Classes to an environment.
The function in the class (i.e. the object generator) is replaced by a stump function that does nothing except calling the original function that now resides somewhere else.
leanify_r6(cls, env = cls$parent_env) leanify_package(pkg_env = parent.frame(), skip_if = function(x) FALSE)
Class generator to modify.
The target environment where the function should be stored. This should be either
cls$parent_env(default) or one of its parent environments, otherwise the stump function will not find the moved (original code) function.
The namespace from which to leanify all R6 classes. Does not have to be a package namespace, but this is the intended usecase.
Function with one argument: Is called for each individual
R6::R6Class. If it returns
TRUE, the class is skipped. Default function evaluating to
FALSEalways (i.e. skipping no classes).