use qcell::{TLCell, TLCellOwner};
pub(crate) struct ActorMarker;
pub(crate) type ActorCell<T> = TLCell<ActorMarker, T>;
pub(crate) struct ActorCellMaker;
pub(crate) type ActorCellOwner = TLCellOwner<ActorMarker>;
impl ActorCellMaker {
#[inline]
pub fn cell<T>(&self, value: T) -> ActorCell<T> {
TLCell::new(value)
}
}
pub(crate) fn new_actor_cell_owner() -> (ActorCellOwner, ActorCellMaker) {
(TLCellOwner::new(), ActorCellMaker)
}
pub(crate) struct ShareMarker;
pub(crate) type ShareCell<T> = TLCell<ShareMarker, T>;
pub(crate) type ShareCellOwner = TLCellOwner<ShareMarker>;
pub(crate) fn new_share_cell_owner() -> ShareCellOwner {
TLCellOwner::new()
}
pub(crate) struct Share2Marker;
pub(crate) type Share2Cell<T> = TLCell<Share2Marker, T>;
pub(crate) type Share2CellOwner = TLCellOwner<Share2Marker>;
pub(crate) fn new_share2_cell_owner() -> Share2CellOwner {
TLCellOwner::new()
}