Skip to content

Commit 3e0f128

Browse files
committed
upgrade async-io-typed to version 2.0.0, bump own version to 2.0.0
1 parent 12a97d5 commit 3e0f128

File tree

4 files changed

+28
-11
lines changed

4 files changed

+28
-11
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
/target
22
/Cargo.lock
3+
/.idea

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "async-io-converse"
3-
version = "1.0.2"
3+
version = "2.0.0"
44
edition = "2021"
55
license = "MIT OR Apache-2.0"
66
description = "Can conduct a conversation over any AsyncRead or AsyncWrite type with serde compatible types"
@@ -14,7 +14,7 @@ documentation = "https://docs.rs/async-io-converse/"
1414
futures-core = "0.3"
1515
futures-io = "0.3"
1616
futures-util = "0.3"
17-
async-io-typed = "1.0"
17+
async-io-typed = "2.0"
1818
bincode = "1.3"
1919
tokio = { version = "1.0", features = ["time", "sync", "rt"] }
2020
serde = { version = "1.0", features = ["derive"] }

src/lib.rs

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,17 @@ pub enum Error {
8686
ReceivedMessageTooLarge,
8787
/// A message was sent that exceeded the configured length limit
8888
SentMessageTooLarge,
89+
ChecksumMismatch {
90+
sent_checksum: u64,
91+
computed_checksum: u64,
92+
},
93+
ProtocolVersionMismatch {
94+
our_version: u64,
95+
their_version: u64,
96+
},
97+
ChecksumHandshakeFailed {
98+
checksum_value: u8,
99+
},
89100
/// A reply wasn't received within the timeout specified
90101
Timeout,
91102
/// The read half was dropped, crippling the ability to receive replies.
@@ -99,6 +110,9 @@ impl From<async_io_typed::Error> for Error {
99110
async_io_typed::Error::Bincode(e) => Error::Bincode(e),
100111
async_io_typed::Error::ReceivedMessageTooLarge => Error::ReceivedMessageTooLarge,
101112
async_io_typed::Error::SentMessageTooLarge => Error::SentMessageTooLarge,
113+
async_io_typed::Error::ChecksumMismatch { sent_checksum, computed_checksum } => Error::ChecksumMismatch { sent_checksum, computed_checksum },
114+
async_io_typed::Error::ProtocolVersionMismatch { our_version, their_version } => Error::ProtocolVersionMismatch { our_version, their_version },
115+
async_io_typed::Error::ChecksumHandshakeFailed { checksum_value } => Error::ChecksumHandshakeFailed { checksum_value },
102116
}
103117
}
104118
}
@@ -111,16 +125,17 @@ pub fn new_duplex_connection_with_limit<
111125
W: AsyncWrite + Unpin,
112126
>(
113127
size_limit: u64,
128+
checksums_enabled: bool,
114129
raw_read: R,
115130
raw_write: W,
116131
) -> (AsyncReadConverse<R, W, T>, AsyncWriteConverse<W, T>) {
117132
let write = Arc::new(Mutex::new(AsyncWriteTyped::new_with_limit(
118-
raw_write, size_limit,
133+
raw_write, size_limit, checksums_enabled,
119134
)));
120135
let write_clone = Arc::clone(&write);
121136
let (reply_data_sender, reply_data_receiver) = mpsc::unbounded_channel();
122137
let read = AsyncReadConverse {
123-
raw: AsyncReadTyped::new_with_limit(raw_read, size_limit),
138+
raw: AsyncReadTyped::new_with_limit(raw_read, size_limit, checksums_enabled),
124139
raw_write: write_clone,
125140
reply_data_receiver,
126141
pending_reply: Vec::new(),
@@ -138,10 +153,11 @@ pub fn new_duplex_connection<
138153
R: AsyncRead + Unpin,
139154
W: AsyncWrite + Unpin,
140155
>(
156+
checksums_enabled: bool,
141157
raw_read: R,
142158
raw_write: W,
143159
) -> (AsyncReadConverse<R, W, T>, AsyncWriteConverse<W, T>) {
144-
new_duplex_connection_with_limit(1024u64.pow(2), raw_read, raw_write)
160+
new_duplex_connection_with_limit(1024u64.pow(2), checksums_enabled, raw_read, raw_write)
145161
}
146162

147163
/// Used to receive messages from the connected peer. ***You must drive this in order to receive replies on [AsyncWriteConverse]***

src/tests.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -164,8 +164,8 @@ pub enum TestMessage {
164164
async fn basic_dialogue() {
165165
let (server_write, client_read) = basic_channel();
166166
let (client_write, server_read) = basic_channel();
167-
let (server_read, mut server_write) = new_duplex_connection(server_read, server_write);
168-
let (mut client_read, _client_write) = new_duplex_connection(client_read, client_write);
167+
let (server_read, mut server_write) = new_duplex_connection(true, server_read, server_write);
168+
let (mut client_read, _client_write) = new_duplex_connection(true, client_read, client_write);
169169
server_read.drive_forever();
170170
tokio::spawn(async move {
171171
while let Some(message) = client_read.next().await {
@@ -204,9 +204,9 @@ async fn flurry_of_communication() {
204204
let (server_write, client_read) = basic_channel();
205205
let (client_write, server_read) = basic_channel();
206206
let (mut server_read, mut server_write) =
207-
new_duplex_connection(server_read, server_write);
207+
new_duplex_connection(true, server_read, server_write);
208208
let (mut client_read, mut client_write) =
209-
new_duplex_connection(client_read, client_write);
209+
new_duplex_connection(true, client_read, client_write);
210210
tokio::spawn(async move {
211211
while let Some(message) = client_read.next().await {
212212
let mut received_message = message.unwrap();
@@ -272,8 +272,8 @@ async fn flurry_of_communication() {
272272
async fn timeout_check() {
273273
let (server_write, client_read) = basic_channel();
274274
let (client_write, server_read) = basic_channel();
275-
let (server_read, mut server_write) = new_duplex_connection(server_read, server_write);
276-
let (mut client_read, _client_write) = new_duplex_connection(client_read, client_write);
275+
let (server_read, mut server_write) = new_duplex_connection(true, server_read, server_write);
276+
let (mut client_read, _client_write) = new_duplex_connection(true, client_read, client_write);
277277
server_read.drive_forever();
278278
tokio::spawn(async move {
279279
while let Some(message) = client_read.next().await {

0 commit comments

Comments
 (0)