1use std::sync::Arc;
2use cogo::chan;
3use cogo::std::sync::{Receiver, Sender, SyncQueue};
4use crate::codec_redis::Response;
5use crate::errors::Error;
6
7#[derive(Clone)]
8pub struct Pool {
9 pub chans: Arc<SyncQueue<(Sender<Result<Response, Error>>, Receiver<Result<Response, Error>>)>>,
11}
12
13impl Pool {
14 pub fn new() -> Self {
15 Self {
16 chans: Arc::new(SyncQueue::new())
17 }
18 }
19
20 pub fn channel(&self) {
21 let (s, r) = chan!();
22 self.chans.push((s.clone(), r.clone()));
23 }
24}