Skip to main content

CONVERSION_ERROR_CLASS_MARKER

Constant CONVERSION_ERROR_CLASS_MARKER 

Source
#[doc(hidden)]
pub const CONVERSION_ERROR_CLASS_MARKER: &str = ".miniextendr_conversion_error_class";
Expand description

The class that stands for the crate’s conversion_error_class in a tagged condition value (#1740).

A macro_rules! macro cannot read [package.metadata.miniextendr], so crate::arg_error! cannot name the crate’s classes the way the generated conversion arms do. It writes this class instead, and the generated R wrapper’s .miniextendr_raise_condition replaces it with .miniextendr_conversion_error_class, the binding its own argument checks read. The string is that binding’s name. Where no generated wrapper raises the condition (a raising guard: an ALTREP RUnwind callback, crate::unwind_protect::with_r_unwind_protect_or_raise) Rust replaces it with the classes miniextendr_init! registered for the package (resolve_conversion_error_class_marker).