use crate::generation::edge::MTEdge;
use crate::object::DynMTObjectPtr;
use std::backtrace::Backtrace;
use std::pin::Pin;
use std::sync::Arc;
pub(super) enum SingleOrMultiThreadDynPtr {
SingleThread(Option<Arc<Backtrace>>),
MultiThread(Pin<DynMTObjectPtr>, Pin<Box<MTEdge>>),
}
impl SingleOrMultiThreadDynPtr {
pub(super) fn created_backtrace(&self) -> &Option<Arc<Backtrace>> {
match self {
SingleOrMultiThreadDynPtr::SingleThread(backtrace) => backtrace,
SingleOrMultiThreadDynPtr::MultiThread(ptr, _) => ptr.created_backtrace(),
}
}
}