`vec_ptype2()`

defines the coercion hierarchy for a set of related
vector types. Along with `vec_cast()`

, this generic forms the
foundation of type coercions in vctrs.

`vec_ptype2()`

is relevant when you are implementing vctrs methods
for your class, but it should not usually be called directly. If
you need to find the common type of a set of inputs, call
`vec_ptype_common()`

instead. This function supports multiple
inputs and finalises the common type.

# S3 method for logical vec_ptype2(x, y, ..., x_arg = "", y_arg = "") # S3 method for integer vec_ptype2(x, y, ..., x_arg = "", y_arg = "") # S3 method for double vec_ptype2(x, y, ..., x_arg = "", y_arg = "") # S3 method for complex vec_ptype2(x, y, ..., x_arg = "", y_arg = "") # S3 method for character vec_ptype2(x, y, ..., x_arg = "", y_arg = "") # S3 method for raw vec_ptype2(x, y, ..., x_arg = "", y_arg = "") # S3 method for list vec_ptype2(x, y, ..., x_arg = "", y_arg = "") vec_ptype2(x, y, ..., x_arg = "", y_arg = "")

x, y | Vector types. |
---|---|

... | These dots are for future extensions and must be empty. |

x_arg, y_arg | Argument names for |

For an overview of how these generics work and their roles in vctrs, see

`?theory-faq-coercion`

.For an example of implementing coercion methods for simple vectors, see

`?howto-faq-coercion`

.For an example of implementing coercion methods for data frame subclasses, see

`?howto-faq-coercion-data-frame`

.For a tutorial about implementing vctrs classes from scratch, see

`vignette("s3-vector")`

.

`vec_ptype()`

is applied to`x`

and`y`

`stop_incompatible_type()`

when you determine from the
attributes that an input can't be cast to the target type.