Skip to main content

systemprompt_models/execution/
shared_context.rs

1use super::context::RequestContext;
2use std::sync::{Arc, Mutex};
3
4pub type SharedRequestContext = Arc<Mutex<RequestContext>>;
5
6impl From<RequestContext> for SharedRequestContext {
7    fn from(context: RequestContext) -> Self {
8        Self::new(Mutex::new(context))
9    }
10}
11
12impl From<Arc<Mutex<Self>>> for RequestContext {
13    fn from(shared: Arc<Mutex<Self>>) -> Self {
14        let guard = shared
15            .lock()
16            .unwrap_or_else(std::sync::PoisonError::into_inner);
17        guard.clone()
18    }
19}