@@ -8,9 +8,7 @@ use timely_bytes::arc::Bytes;
8
8
9
9
use crate :: allocator:: canary:: Canary ;
10
10
use crate :: networking:: MessageHeader ;
11
-
12
- use crate :: { Data , Push , Pull } ;
13
- use crate :: allocator:: Message ;
11
+ use crate :: { Bytesable , Push , Pull } ;
14
12
15
13
use super :: bytes_exchange:: { BytesPush , SendEndpoint } ;
16
14
@@ -35,9 +33,9 @@ impl<T, P: BytesPush> Pusher<T, P> {
35
33
}
36
34
}
37
35
38
- impl < T : Data , P : BytesPush > Push < Message < T > > for Pusher < T , P > {
36
+ impl < T : Bytesable , P : BytesPush > Push < T > for Pusher < T , P > {
39
37
#[ inline]
40
- fn push ( & mut self , element : & mut Option < Message < T > > ) {
38
+ fn push ( & mut self , element : & mut Option < T > ) {
41
39
if let Some ( ref mut element) = * element {
42
40
43
41
// determine byte lengths and build header.
@@ -68,11 +66,11 @@ impl<T:Data, P: BytesPush> Push<Message<T>> for Pusher<T, P> {
68
66
/// allocation.
69
67
pub struct Puller < T > {
70
68
_canary : Canary ,
71
- current : Option < Message < T > > ,
69
+ current : Option < T > ,
72
70
receiver : Rc < RefCell < VecDeque < Bytes > > > , // source of serialized buffers
73
71
}
74
72
75
- impl < T : Data > Puller < T > {
73
+ impl < T : Bytesable > Puller < T > {
76
74
/// Creates a new `Puller` instance from a shared queue.
77
75
pub fn new ( receiver : Rc < RefCell < VecDeque < Bytes > > > , _canary : Canary ) -> Puller < T > {
78
76
Puller {
@@ -83,14 +81,14 @@ impl<T:Data> Puller<T> {
83
81
}
84
82
}
85
83
86
- impl < T : Data > Pull < Message < T > > for Puller < T > {
84
+ impl < T : Bytesable > Pull < T > for Puller < T > {
87
85
#[ inline]
88
- fn pull ( & mut self ) -> & mut Option < Message < T > > {
86
+ fn pull ( & mut self ) -> & mut Option < T > {
89
87
self . current =
90
88
self . receiver
91
89
. borrow_mut ( )
92
90
. pop_front ( )
93
- . map ( Message :: from_bytes) ;
91
+ . map ( T :: from_bytes) ;
94
92
95
93
& mut self . current
96
94
}
@@ -103,15 +101,15 @@ impl<T:Data> Pull<Message<T>> for Puller<T> {
103
101
/// like the `bytes` crate (../bytes/) which provides an exclusive view of a shared
104
102
/// allocation.
105
103
pub struct PullerInner < T > {
106
- inner : Box < dyn Pull < Message < T > > > , // inner pullable (e.g. intra-process typed queue)
104
+ inner : Box < dyn Pull < T > > , // inner pullable (e.g. intra-process typed queue)
107
105
_canary : Canary ,
108
- current : Option < Message < T > > ,
106
+ current : Option < T > ,
109
107
receiver : Rc < RefCell < VecDeque < Bytes > > > , // source of serialized buffers
110
108
}
111
109
112
- impl < T : Data > PullerInner < T > {
110
+ impl < T : Bytesable > PullerInner < T > {
113
111
/// Creates a new `PullerInner` instance from a shared queue.
114
- pub fn new ( inner : Box < dyn Pull < Message < T > > > , receiver : Rc < RefCell < VecDeque < Bytes > > > , _canary : Canary ) -> Self {
112
+ pub fn new ( inner : Box < dyn Pull < T > > , receiver : Rc < RefCell < VecDeque < Bytes > > > , _canary : Canary ) -> Self {
115
113
PullerInner {
116
114
inner,
117
115
_canary,
@@ -121,9 +119,9 @@ impl<T:Data> PullerInner<T> {
121
119
}
122
120
}
123
121
124
- impl < T : Data > Pull < Message < T > > for PullerInner < T > {
122
+ impl < T : Bytesable > Pull < T > for PullerInner < T > {
125
123
#[ inline]
126
- fn pull ( & mut self ) -> & mut Option < Message < T > > {
124
+ fn pull ( & mut self ) -> & mut Option < T > {
127
125
128
126
let inner = self . inner . pull ( ) ;
129
127
if inner. is_some ( ) {
@@ -134,7 +132,7 @@ impl<T:Data> Pull<Message<T>> for PullerInner<T> {
134
132
self . receiver
135
133
. borrow_mut ( )
136
134
. pop_front ( )
137
- . map ( Message :: from_bytes) ;
135
+ . map ( T :: from_bytes) ;
138
136
139
137
& mut self . current
140
138
}
0 commit comments