Skip to main content

__impl_altrep_base_with_serialize

Macro __impl_altrep_base_with_serialize 

Source
#[doc(hidden)]
macro_rules! __impl_altrep_base_with_serialize { ($ty:ty) => { ... }; ($ty:ty, $guard:ident) => { ... }; }
Expand description

Internal macro: impl Altrep with length + serialization

This implements both:

  • serialized_state(x) (save-side)
  • unserialize(class, state) (load-side)

The unserialize implementation reconstructs the backing Rust value via [AltrepSerialize::unserialize] and then creates a fresh ALTREP instance via R_new_altrep(class, data1, SEXP::nil()) where data1 is an ExternalPtr<$ty>.

This matches the proc-macro-generated IntoR::into_sexp behavior (data is stored in data1, and data2 is R_NilValue).