Возможный способ сериализации `externalptr` перед сохранением?

#r

#r

Вопрос:

Возможно ли в R зарегистрировать функцию, которая вызывается перед сохранением?

Целью этого было бы сериализовать внешний указатель перед вызовом save или завершением сеанса.

Комментарии:

1. Я подозреваю, что вам лучше всего обратиться к автору (ам) пакета с просьбой реализовать указанную функциональность с какой-либо сериализацией на стороне Rcpp.

2. Я автор пакета :), просто хочу пропустить накладные расходы на сериализацию при каждом отдельном вызове, выполняемом пользователем.

3. Ага. Извинения. Только что об этом спросили у triebeard пакета, поэтому я чувствую вашу боль. Из TFM serialize и saveRDS : «Функции refhook можно использовать для настройки обработки несистемных ссылочных объектов (все внешние указатели и слабые ссылки, а также все среды, отличные от namespace и pkg env и . GlobalEnv). Функция перехвата для serialize должна возвращать символьный вектор для ссылок, которые она хочет обработать; в противном случае она должна возвращать NULL. Будет вызван хук для unserialize с векторами символов, предоставленными для сериализации, и он должен вернуть соответствующий объект «.

4. Мило! Это именно то, что я искал, не смог его найти …. думаю, rtfm должен быть больше, чем code 😉

5. @hrbmstr, мог бы также опубликовать ответ…