+ pub(crate) skip_context: SkipContext,
+ pub(crate) skipped_range: Rc<RefCell<Vec<(usize, usize)>>>,
+}
+
+pub(crate) struct InsideMacroGuard {
+ is_nested_macro_context: bool,
+ inside_macro_ref: Rc<Cell<bool>>,
+}
+
+impl InsideMacroGuard {
+ pub(crate) fn is_nested(&self) -> bool {
+ self.is_nested_macro_context
+ }
+}
+
+impl Drop for InsideMacroGuard {
+ fn drop(&mut self) {
+ self.inside_macro_ref.replace(self.is_nested_macro_context);
+ }