1use crate::*;
2
3pub type ArcStream = Arc<TcpStream>;
4
5pub type OptionArcTcpStream = Option<ArcStream>;
6pub type OptionArcRwLockStream = Option<ArcRwLockStream>;
7
8pub type RwLockReadGuardTcpStream<'a> = RwLockReadGuard<'a, TcpStream>;
9pub type RwLockWriteGuardTcpStream<'a> = RwLockWriteGuard<'a, TcpStream>;
10
11pub type ArcRwLockWriteGuardTcpStream<'a> = Arc<RwLockWriteGuard<'a, TcpStream>>;
12pub type OptionArcRwLockWriteGuardTcpStream<'a> = Option<ArcRwLockWriteGuardTcpStream<'a>>;
13
14pub type ArcMutexGuardTcpStream<'a> = Arc<MutexGuard<'a, TcpStream>>;
15pub type OptionArcMutexGuardTcpStream<'a> = Option<ArcMutexGuardTcpStream<'a>>;
16
17#[derive(Clone, Debug)]
18pub struct ArcRwLockStream(pub(super) ArcRwLock<TcpStream>);