pub type UniZeroCopyAtomic<InType, const BUFFER_SIZE: usize, const MAX_STREAMS: usize = 1, const INSTRUMENTS: usize = {Instruments::LogsWithMetrics.into()}> = Uni<InType, ChannelUniZeroCopyAtomic<InType, BUFFER_SIZE, MAX_STREAMS>, INSTRUMENTS, OgreUnique<InType, AllocatorAtomicArray<InType, BUFFER_SIZE>>>;
struct UniZeroCopyAtomic<InType, const BUFFER_SIZE: usize, const MAX_STREAMS: usize = 1, const INSTRUMENTS: usize = {Instruments::LogsWithMetrics.into()}> {
pub channel: Arc<Atomic<'static, InType, OgreArrayPoolAllocator<InType, AtomicMove<u32, BUFFER_SIZE>, BUFFER_SIZE>, BUFFER_SIZE, MAX_STREAMS>>,
pub stream_executors: Vec<Arc<StreamExecutor<INSTRUMENTS>>>,
pub finished_executors_count: AtomicU32,
}