1#![doc = include_str!("../README.md")]
2
3#[cfg(feature = "async")]
4mod async_pool;
5#[cfg(feature = "sync")]
6mod semaphore;
7#[cfg(feature = "sync")]
8mod sync_pool;
9
10#[cfg(feature = "async")]
11pub use async_pool::AsyncSessionPool;
12
13use ort::session::builder::SessionBuilder;
14#[cfg(feature = "sync")]
15pub use sync_pool::SessionPool;
16
17struct SessionBuilderFactory(SessionBuilder);
18
19impl SessionBuilderFactory {
20 pub(crate) fn generate(&self) -> SessionBuilder {
21 self.0.clone()
22 }
23}
24
25unsafe impl Sync for SessionBuilderFactory {}
26unsafe impl Send for SessionBuilderFactory {}