rkyv/de/pooling/core.rs
1use crate::de::pooling::{ErasedPtr, Pooling, PoolingState};
2
3/// A shared pointer strategy that duplicates deserializations of the same
4/// shared pointer.
5#[derive(Debug, Default)]
6pub struct Unpool;
7
8impl<E> Pooling<E> for Unpool {
9 fn start_pooling(&mut self, _: usize) -> PoolingState {
10 PoolingState::Started
11 }
12
13 unsafe fn finish_pooling(
14 &mut self,
15 _: usize,
16 _: ErasedPtr,
17 _: unsafe fn(ErasedPtr),
18 ) -> Result<(), E> {
19 Ok(())
20 }
21}