Skip to contents

Covenience wrapper around dictionary_sugar_get_safe and dictionary_sugar_mget_safe to allow easier avoidance of of ID clashes which is useful when the same object is used multiple times and the ids have to be unique. Let <key> be the key of the object to retrieve. When passing the <key>_<n> to this function, where <n> is any natural numer, the object with key <key> is retrieved and the suffix _<n> is appended to the id after the object is constructed.

Usage

dictionary_sugar_inc_get_safe(.dict, .key, ...)

dictionary_sugar_inc_mget_safe(.dict, .keys, ...)

Arguments

.dict

(Dictionary)
Dictionary from which to retrieve an element.

.key

(character(1))
Key of the object to construct - possibly with a suffix of the form _<n> which will be appended to the id.

...

(any)
See description of dictionary_sugar_get_safe.

.keys

(character())
Keys of the objects to construct - possibly with suffixes of the form _<n> which will be appended to the ids.

Value

An element from the dictionary.

Examples

d = Dictionary$new()
d$add("a", R6::R6Class("A", public = list(id = "a")))
d$add("b", R6::R6Class("B", public = list(id = "c")))
obj1 = dictionary_sugar_inc_get_safe(d, "a_1")
obj1$id
#> [1] "a_1"

obj2 = dictionary_sugar_inc_get_safe(d, "b_1")
obj2$id
#> [1] "c_1"

objs = dictionary_sugar_inc_mget_safe(d, c("a_10", "b_2"))
map(objs, "id")
#> $a_10
#> [1] "a_10"
#> 
#> $c_2
#> [1] "c_2"
#>