mirror of
https://github.com/callumio/suck.git
synced 2026-03-21 22:18:10 +00:00
refactor: reorganize channel modules and implement async/sync structures
This commit is contained in:
parent
8366421ede
commit
f62d8eebca
9 changed files with 40 additions and 24 deletions
|
|
@ -10,9 +10,17 @@ use crate::asynchronous::traits::{
|
|||
use crate::types;
|
||||
|
||||
type TokioSucker<T> =
|
||||
crate::AsyncSucker<T, TokioSender<types::Request>, TokioReceiver<types::Response<T>>>;
|
||||
crate::asynchronous::channel::AsyncSucker<
|
||||
T,
|
||||
TokioSender<types::Request>,
|
||||
TokioReceiver<types::Response<T>>,
|
||||
>;
|
||||
type TokioSourcer<T> =
|
||||
crate::AsyncSourcer<T, TokioReceiver<types::Request>, TokioSender<types::Response<T>>>;
|
||||
crate::asynchronous::channel::AsyncSourcer<
|
||||
T,
|
||||
TokioReceiver<types::Request>,
|
||||
TokioSender<types::Response<T>>,
|
||||
>;
|
||||
|
||||
pub struct TokioSender<T>(mpsc::UnboundedSender<T>);
|
||||
pub struct TokioReceiver<T>(Mutex<mpsc::UnboundedReceiver<T>>);
|
||||
|
|
@ -70,8 +78,8 @@ impl<T> TokioSuck<T> {
|
|||
let (response_tx, response_rx) = TokioChannel::create_response_channel::<T>();
|
||||
let state = ArcSwap::new(Arc::new(crate::types::ValueSource::None));
|
||||
|
||||
let sucker = crate::AsyncSucker::new(request_tx, response_rx);
|
||||
let sourcer = crate::AsyncSourcer::new(request_rx, response_tx, state);
|
||||
let sucker = crate::asynchronous::channel::AsyncSucker::new(request_tx, response_rx);
|
||||
let sourcer = crate::asynchronous::channel::AsyncSourcer::new(request_rx, response_tx, state);
|
||||
|
||||
(sucker, sourcer)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue