Skip to content

Commit 350a9b2

Browse files
committed
windows: Drop custom GetMessageResult type
Just use a tuple in an `Option<>` instead. The named type didn't really add anything here -- it only made the code harder to follow. (The original introduction of this custom type resulted from a communication failure...)
1 parent 79f176e commit 350a9b2

File tree

1 file changed

+8
-12
lines changed

1 file changed

+8
-12
lines changed

src/platform/windows/mod.rs

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -332,11 +332,6 @@ impl WinHandle {
332332
}
333333
}
334334

335-
enum GetMessageResult {
336-
NoMessage,
337-
Message(Vec<u8>, Vec<OsOpaqueIpcChannel>, Vec<OsIpcSharedMemory>),
338-
}
339-
340335
/// Main object keeping track of a receive handle and its associated state.
341336
///
342337
/// Implements blocking/nonblocking reads of messages from the handle.
@@ -489,7 +484,8 @@ impl MessageReader {
489484
// This is split between get_message and get_message_inner, so that
490485
// this function can handle removing bytes from the buffer, since
491486
// get_message_inner borrows the buffer.
492-
fn get_message(&mut self) -> Result<GetMessageResult, WinError> {
487+
fn get_message(&mut self) -> Result<Option<(Vec<u8>, Vec<OsOpaqueIpcChannel>, Vec<OsIpcSharedMemory>)>,
488+
WinError> {
493489
let drain_bytes;
494490
let result;
495491
if let Some(message) = Message::from_bytes(&self.read_buf) {
@@ -524,10 +520,10 @@ impl MessageReader {
524520
win32_trace!("[$ {:?}] get_message success -> {} bytes, {} channels, {} shmems",
525521
self.handle, buf_data.len(), channels.len(), shmems.len());
526522
drain_bytes = Some(message.size());
527-
result = GetMessageResult::Message(buf_data, channels, shmems);
523+
result = Some((buf_data, channels, shmems));
528524
} else {
529525
drain_bytes = None;
530-
result = GetMessageResult::NoMessage;
526+
result = None;
531527
}
532528

533529
if let Some(size) = drain_bytes {
@@ -698,9 +694,9 @@ impl OsIpcReceiver {
698694
// First, try to fetch a message, in case we have one pending
699695
// in the reader's receive buffer
700696
match try!(reader.get_message()) {
701-
GetMessageResult::Message(data, channels, shmems) =>
697+
Some((data, channels, shmems)) =>
702698
return Ok((data, channels, shmems)),
703-
GetMessageResult::NoMessage =>
699+
None =>
704700
{},
705701
}
706702

@@ -1221,11 +1217,11 @@ impl OsIpcReceiverSet {
12211217
// then drain as many messages as we can
12221218
loop {
12231219
match try!(reader.get_message()) {
1224-
GetMessageResult::Message(data, channels, shmems) => {
1220+
Some((data, channels, shmems)) => {
12251221
win32_trace!("[# {:?}] receiver {:?} ({}) got a message", *self.iocp, *reader.handle, reader.set_id.unwrap());
12261222
selection_results.push(OsIpcSelectionResult::DataReceived(reader.set_id.unwrap(), data, channels, shmems));
12271223
},
1228-
GetMessageResult::NoMessage => {
1224+
None => {
12291225
win32_trace!("[# {:?}] receiver {:?} ({}) -- no message", *self.iocp, *reader.handle, reader.set_id.unwrap());
12301226
break;
12311227
},

0 commit comments

Comments
 (0)