Avoid copying message structure in certain case
This commit is contained in:
parent
f1008f4aff
commit
d21031afbf
|
@ -26,7 +26,7 @@ impl Client {
|
|||
let send_stream = connection.open_uni().await?;
|
||||
send_message(
|
||||
send_stream,
|
||||
Message::ConnectionParameters(connection_parameters),
|
||||
&Message::ConnectionParameters(connection_parameters),
|
||||
)
|
||||
.await?;
|
||||
|
||||
|
@ -38,7 +38,7 @@ impl Client {
|
|||
|
||||
pub async fn subscribe(&self, filters: Vec<Filter>) -> anyhow::Result<()> {
|
||||
let send_stream = self.connection.open_uni().await?;
|
||||
send_message(send_stream, Message::Filters(filters)).await?;
|
||||
send_message(send_stream, &Message::Filters(filters)).await?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
|
|
@ -237,20 +237,18 @@ impl ConnectionManager {
|
|||
for _ in 0..retry_count {
|
||||
let send_stream = connection.open_uni().await;
|
||||
match send_stream {
|
||||
Ok(send_stream) => {
|
||||
match send_message(send_stream, message.clone()).await {
|
||||
Ok(_) => {
|
||||
log::debug!("Message sucessfully sent");
|
||||
break;
|
||||
}
|
||||
Err(e) => {
|
||||
log::error!(
|
||||
"error dispatching message and sending data : {}",
|
||||
e
|
||||
)
|
||||
}
|
||||
Ok(send_stream) => match send_message(send_stream, &message).await {
|
||||
Ok(_) => {
|
||||
log::debug!("Message sucessfully sent");
|
||||
break;
|
||||
}
|
||||
}
|
||||
Err(e) => {
|
||||
log::error!(
|
||||
"error dispatching message and sending data : {}",
|
||||
e
|
||||
)
|
||||
}
|
||||
},
|
||||
Err(e) => {
|
||||
log::error!(
|
||||
"error dispatching message while creating stream : {}",
|
||||
|
|
|
@ -107,7 +107,7 @@ mod tests {
|
|||
let connection = connecting.await.unwrap();
|
||||
|
||||
let send_stream = connection.open_uni().await.unwrap();
|
||||
send_message(send_stream, message).await.unwrap();
|
||||
send_message(send_stream, &message).await.unwrap();
|
||||
jh.await.unwrap();
|
||||
}
|
||||
|
||||
|
@ -143,7 +143,7 @@ mod tests {
|
|||
.unwrap();
|
||||
let connection = connecting.await.unwrap();
|
||||
let send_stream = connection.open_uni().await.unwrap();
|
||||
send_message(send_stream, sent_message).await.unwrap();
|
||||
send_message(send_stream, &sent_message).await.unwrap();
|
||||
})
|
||||
};
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ use quinn::SendStream;
|
|||
|
||||
use crate::message::Message;
|
||||
|
||||
pub fn convert_to_binary(message: Message) -> anyhow::Result<Vec<u8>> {
|
||||
pub fn convert_to_binary(message: &Message) -> anyhow::Result<Vec<u8>> {
|
||||
let mut binary = bincode::serialize(&message)?;
|
||||
let size = binary.len() as u64;
|
||||
// prepend size to the binary object
|
||||
|
@ -11,7 +11,7 @@ pub fn convert_to_binary(message: Message) -> anyhow::Result<Vec<u8>> {
|
|||
Ok(binary)
|
||||
}
|
||||
|
||||
pub async fn send_message(mut send_stream: SendStream, message: Message) -> anyhow::Result<()> {
|
||||
pub async fn send_message(mut send_stream: SendStream, message: &Message) -> anyhow::Result<()> {
|
||||
let binary = convert_to_binary(message)?;
|
||||
send_stream.write_all(&binary).await?;
|
||||
send_stream.finish().await?;
|
||||
|
|
Loading…
Reference in New Issue