A key-value store for R6::R6 objects. On retrieval of an object, the following applies:
If the object is a R6ClassGenerator
, it is initialized with new()
.
If the object is a function, it is called and must return an instance of a R6::R6 object.
If the object is an instance of a R6 class, it is returned as-is.
Default argument required for construction can be stored alongside their constructors by passing them to $add()
.
as.data.table(d)
Dictionary -> data.table::data.table()
Converts the dictionary to a data.table::data.table()
.
items
(environment()
)
Stores the items of the dictionary
new()
Construct a new Dictionary.
Dictionary$new()
...
(ignored).
keys()
Returns all keys which comply to the regular expression pattern
.
If pattern
is NULL
(default), all keys are returned.
Dictionary$keys(pattern = NULL)
pattern
(character(1)
).
character()
of keys.
has()
Returns a logical vector with TRUE
at its i-th position if the i-th key exists.
Dictionary$has(keys)
keys
(character()
).
get()
Retrieves object with key key
from the dictionary.
Additional arguments must be named and are passed to the constructor of the stored object.
Dictionary$get(key, ..., .prototype = FALSE)
key
(character(1)
).
...
(any
)
Passed down to constructor.
.prototype
(logical(1)
)
Whether to construct a prototype object.
Object with corresponding key.
mget()
Returns objects with keys keys
in a list named with keys
.
Additional arguments must be named and are passed to the constructors of the stored objects.
Dictionary$mget(keys, ...)
keys
(character()
).
...
(any
)
Passed down to constructor.
Named list()
of objects with corresponding keys.
add()
Adds object value
to the dictionary with key key
, potentially overwriting a previously stored item.
Additional arguments in ...
must be named and are passed as default arguments to value
during construction.
Dictionary$add(key, value, ..., .prototype_args = list())
key
(character(1)
).
value
(any
).
...
(any
)
Passed down to constructor.
.prototype_args
(list()
)
List of arguments to construct a prototype object.
Can be used when objects have construction arguments without defaults.
Dictionary
.
keys
(character()
)
Keys of objects to remove.
Dictionary
.
prototype_args()
Returns the arguments required to construct a simple prototype of the object.
Dictionary$prototype_args(key)
key
(character(1)
)
Key of object to query for required arguments.
list()
of prototype arguments
clone()
The objects of this class are cloneable with this method.
Dictionary$clone(deep = FALSE)
deep
Whether to make a deep clone.
library(R6)
item1 = R6Class("Item", public = list(x = 1))
item2 = R6Class("Item", public = list(x = 2))
d = Dictionary$new()
d$add("a", item1)
d$add("b", item2)
d$add("c", item1$new())
d$keys()
d$get("a")
d$mget(c("a", "b"))
Run the code above in your browser using DataLab