R: Lock or unlock environment bindings

env_binding_lock {rlang} | R Documentation

## Lock or unlock environment bindings

### Description

Locked environment bindings trigger an error when an attempt is made to redefine the binding.

### Usage

    env_binding_lock(env, nms = NULL)

    env_binding_unlock(env, nms = NULL)

    env_binding_are_locked(env, nms = NULL)

### Arguments

`env` | An environment.
`nms` | Names of bindings. Defaults to all bindings in `env`.

### Value

`env_binding_are_unlocked()` returns a logical vector as long as `nms` and named after it. `env_binding_lock()` and `env_binding_unlock()` return the old value of `env_binding_are_unlocked()` invisibly.

### See Also

`env_lock()` for locking an environment.

### Examples

    # Bindings are unlocked by default:
    env <- env(a = "A", b = "B")
    env_binding_are_locked(env)

    # But can optionally be locked:
    env_binding_lock(env, "a")
    env_binding_are_locked(env)

    # If run, the following would now return an error because `a` is locked:
    # env_bind(env, a = "foo")
    # with_env(env, a <- "bar")

    # Let's unlock it. Note that the return value indicate which
    # bindings were locked:
    were_locked <- env_binding_unlock(env)
    were_locked

    # Now that it is unlocked we can modify it again:
    env_bind(env, a = "foo")
    with_env(env, a <- "bar")
    env$a

[Package rlang version 0.4.3 Index]