R: Does an object inherit from a set of classes?

inherits_any {rlang} | R Documentation

## Does an object inherit from a set of classes?

### Description

- `inherits_any()` is like `base::inherits()` but is more explicit about its behaviour with multiple classes. If `classes` contains several elements and the object inherits from at least one of them, `inherits_any()` returns `TRUE`.

- `inherits_all()` tests that an object inherits from all of the classes in the supplied order. This is usually the best way to test for inheritance of multiple classes.

- `inherits_only()` tests that the class vectors are identical. It is a shortcut for `identical(class(x), class)`.

### Usage

    inherits_any(x, class)

    inherits_all(x, class)

    inherits_only(x, class)

### Arguments

`x` | An object to test for inheritance.
`class` | A character vector of classes.

### Examples

    obj <- structure(list(), class = c("foo", "bar", "baz"))

    # With the _any variant only one class must match:
    inherits_any(obj, c("foobar", "bazbaz"))
    inherits_any(obj, c("foo", "bazbaz"))

    # With the _all variant all classes must match:
    inherits_all(obj, c("foo", "bazbaz"))
    inherits_all(obj, c("foo", "baz"))

    # The order of classes must match as well:
    inherits_all(obj, c("baz", "foo"))

    # inherits_only() checks that the class vectors are identical:
    inherits_only(obj, c("foo", "baz"))
    inherits_only(obj, c("foo", "bar", "baz"))

[Package rlang version 0.4.5 Index]