pub trait MetaSubscriber<'a, SlotType: 'a> {
fn consume<GetterReturnType: 'a,
GetterFn: Fn(&SlotType) -> GetterReturnType,
ReportEmptyFn: Fn() -> bool,
ReportLenAfterDequeueingFn: FnOnce(i32)>
(&self,
getter_fn: GetterFn,
report_empty_fn: ReportEmptyFn,
report_len_after_dequeueing_fn: ReportLenAfterDequeueingFn)
-> Option<GetterReturnType>;
fn consume_leaking(&'a self) -> Option<(/*ref:*/ &'a SlotType, /*id: */u32)>;
fn release_leaked_ref(&'a self, slot: &'a SlotType);
fn release_leaked_id(&'a self, slot_id: u32);
fn remaining_elements_count(&self) -> usize;
unsafe fn peek_remaining(&self) -> Vec<&SlotType>;
}
pub trait MoveSubscriber<SlotType> {
fn consume_movable(&self) -> Option<SlotType>;
unsafe fn peek_remaining(&self) -> [&[SlotType];2];
}