pub use crate::{
prelude::*,
types::{FullDuplexUniChannel, FullDuplexMultiChannel},
ogre_std::ogre_alloc::{
OgreAllocator,
ogre_arc::OgreArc,
ogre_unique::OgreUnique,
}
};
use crate::{
multi,
uni,
ogre_std::{
ogre_queues,
ogre_alloc,
},
};
use std::sync::Arc;
pub type AllocatorAtomicArray <InType, const BUFFER_SIZE: usize> = ogre_alloc::ogre_array_pool_allocator::OgreArrayPoolAllocator<InType, ogre_queues::atomic::atomic_move::AtomicMove <u32, BUFFER_SIZE>, BUFFER_SIZE>;
pub type AllocatorFullSyncArray<InType, const BUFFER_SIZE: usize> = ogre_alloc::ogre_array_pool_allocator::OgreArrayPoolAllocator<InType, ogre_queues::full_sync::full_sync_move::FullSyncMove<u32, BUFFER_SIZE>, BUFFER_SIZE>;
pub type ChannelUniMoveAtomic <InType, const BUFFER_SIZE: usize, const MAX_STREAMS: usize> = uni::channels::movable::atomic::Atomic <'static, InType, BUFFER_SIZE, MAX_STREAMS>;
pub type ChannelUniMoveCrossbeam <InType, const BUFFER_SIZE: usize, const MAX_STREAMS: usize> = uni::channels::movable::crossbeam::Crossbeam <'static, InType, BUFFER_SIZE, MAX_STREAMS>;
pub type ChannelUniMoveFullSync <InType, const BUFFER_SIZE: usize, const MAX_STREAMS: usize> = uni::channels::movable::full_sync::FullSync <'static, InType, BUFFER_SIZE, MAX_STREAMS>;
pub type ChannelUniZeroCopyAtomic <InType, const BUFFER_SIZE: usize, const MAX_STREAMS: usize> = uni::channels::zero_copy::atomic::Atomic <'static, InType, AllocatorAtomicArray <InType, BUFFER_SIZE>, BUFFER_SIZE, MAX_STREAMS>;
pub type ChannelUniZeroCopyFullSync<InType, const BUFFER_SIZE: usize, const MAX_STREAMS: usize> = uni::channels::zero_copy::full_sync::FullSync<'static, InType, AllocatorFullSyncArray<InType, BUFFER_SIZE>, BUFFER_SIZE, MAX_STREAMS>;
pub type UniMoveAtomic<InType,
const BUFFER_SIZE: usize,
const MAX_STREAMS: usize = 1,
const INSTRUMENTS: usize = {Instruments::LogsWithMetrics.into()}>
= uni::Uni<InType, ChannelUniMoveAtomic<InType, BUFFER_SIZE, MAX_STREAMS>, INSTRUMENTS, InType>;
pub type UniMoveCrossbeam<InType,
const BUFFER_SIZE: usize,
const MAX_STREAMS: usize = 1,
const INSTRUMENTS: usize = {Instruments::LogsWithMetrics.into()}>
= uni::Uni<InType, ChannelUniMoveCrossbeam<InType, BUFFER_SIZE, MAX_STREAMS>, INSTRUMENTS, InType>;
pub type UniMoveFullSync<InType,
const BUFFER_SIZE: usize,
const MAX_STREAMS: usize = 1,
const INSTRUMENTS: usize = {Instruments::LogsWithMetrics.into()}>
= uni::Uni<InType, ChannelUniMoveFullSync<InType, BUFFER_SIZE, MAX_STREAMS>, INSTRUMENTS, InType>;
pub type UniZeroCopyAtomic<InType,
const BUFFER_SIZE: usize,
const MAX_STREAMS: usize = 1,
const INSTRUMENTS: usize = {Instruments::LogsWithMetrics.into()}>
= uni::Uni<InType, ChannelUniZeroCopyAtomic<InType, BUFFER_SIZE, MAX_STREAMS>, INSTRUMENTS, OgreUnique<InType, AllocatorAtomicArray<InType, BUFFER_SIZE>>>;
pub type UniZeroCopyFullSync<InType,
const BUFFER_SIZE: usize,
const MAX_STREAMS: usize = 1,
const INSTRUMENTS: usize = {Instruments::LogsWithMetrics.into()}>
= uni::Uni<InType, ChannelUniZeroCopyFullSync<InType, BUFFER_SIZE, MAX_STREAMS>, INSTRUMENTS, OgreUnique<InType, AllocatorFullSyncArray<InType, BUFFER_SIZE>>>;
pub type ChannelMultiArcAtomic <ItemType, const BUFFER_SIZE: usize, const MAX_STREAMS: usize> = multi::channels::arc::atomic::Atomic <'static, ItemType, BUFFER_SIZE, MAX_STREAMS>;
pub type ChannelMultiArcCrossbeam <ItemType, const BUFFER_SIZE: usize, const MAX_STREAMS: usize> = multi::channels::arc::crossbeam::Crossbeam <'static, ItemType, BUFFER_SIZE, MAX_STREAMS>;
pub type ChannelMultiArcFullSync <ItemType, const BUFFER_SIZE: usize, const MAX_STREAMS: usize> = multi::channels::arc::full_sync::FullSync <'static, ItemType, BUFFER_SIZE, MAX_STREAMS>;
pub type ChannelMultiOgreArcAtomic <ItemType, const BUFFER_SIZE: usize, const MAX_STREAMS: usize> = multi::channels::ogre_arc::atomic::Atomic <'static, ItemType, AllocatorAtomicArray<ItemType, BUFFER_SIZE>, BUFFER_SIZE, MAX_STREAMS>;
pub type ChannelMultiOgreArcFullSync<ItemType, const BUFFER_SIZE: usize, const MAX_STREAMS: usize> = multi::channels::ogre_arc::full_sync::FullSync<'static, ItemType, AllocatorFullSyncArray<ItemType, BUFFER_SIZE>, BUFFER_SIZE, MAX_STREAMS>;
pub type ChannelMultiMmapLog <ItemType, const MAX_STREAMS: usize> = multi::channels::reference::mmap_log::MmapLog <'static, ItemType, MAX_STREAMS>;
pub type MultiAtomicArc<ItemType,
const BUFFER_SIZE: usize,
const MAX_STREAMS: usize,
const INSTRUMENTS: usize = {Instruments::LogsWithMetrics.into()}>
= multi::Multi<ItemType,
ChannelMultiArcAtomic<ItemType, BUFFER_SIZE, MAX_STREAMS>,
INSTRUMENTS,
Arc<ItemType>>;
pub type MultiCrossbeamArc<ItemType,
const BUFFER_SIZE: usize,
const MAX_STREAMS: usize,
const INSTRUMENTS: usize = {Instruments::LogsWithMetrics.into()}>
= multi::Multi<ItemType,
ChannelMultiArcCrossbeam<ItemType, BUFFER_SIZE, MAX_STREAMS>,
INSTRUMENTS,
Arc<ItemType>>;
pub type MultiFullSyncArc<ItemType,
const BUFFER_SIZE: usize,
const MAX_STREAMS: usize,
const INSTRUMENTS: usize = {Instruments::LogsWithMetrics.into()}>
= multi::Multi<ItemType,
ChannelMultiArcFullSync<ItemType, BUFFER_SIZE, MAX_STREAMS>,
INSTRUMENTS,
Arc<ItemType>>;
pub type MultiAtomicOgreArc<ItemType,
const BUFFER_SIZE: usize,
const MAX_STREAMS: usize,
const INSTRUMENTS: usize = {Instruments::LogsWithMetrics.into()}>
= multi::Multi<ItemType,
ChannelMultiOgreArcAtomic<ItemType, BUFFER_SIZE, MAX_STREAMS>,
INSTRUMENTS,
OgreArc<ItemType, AllocatorAtomicArray<ItemType, BUFFER_SIZE>>>;
pub type MultiFullSyncOgreArc<ItemType,
const BUFFER_SIZE: usize,
const MAX_STREAMS: usize,
const INSTRUMENTS: usize = {Instruments::LogsWithMetrics.into()}>
= multi::Multi<ItemType,
ChannelMultiOgreArcFullSync<ItemType, BUFFER_SIZE, MAX_STREAMS>,
INSTRUMENTS,
OgreArc<ItemType, AllocatorFullSyncArray<ItemType, BUFFER_SIZE>>>;
pub type MultiMmapLog<ItemType,
const MAX_STREAMS: usize,
const INSTRUMENTS: usize = {Instruments::LogsWithMetrics.into()}>
= multi::Multi<ItemType,
ChannelMultiMmapLog<ItemType, MAX_STREAMS>,
INSTRUMENTS,
&'static ItemType>;