From 970fdbb9b59a13bb6abbb00b342272ebf448e540 Mon Sep 17 00:00:00 2001 From: Nilstrieb <48135649+Nilstrieb@users.noreply.github.com> Date: Thu, 10 Feb 2022 01:32:15 +0100 Subject: [PATCH] use `bytes::Bytes` --- Cargo.lock | 1 + amqp_transport/Cargo.toml | 1 + amqp_transport/src/connection.rs | 2 +- amqp_transport/src/frame.rs | 8 +++++--- amqp_transport/src/tests.rs | 2 +- 5 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 04a1a6e..e1a825e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -58,6 +58,7 @@ dependencies = [ "amqp_core", "amqp_messaging", "anyhow", + "bytes", "criterion", "nom", "once_cell", diff --git a/amqp_transport/Cargo.toml b/amqp_transport/Cargo.toml index a69d7a7..664ebd8 100644 --- a/amqp_transport/Cargo.toml +++ b/amqp_transport/Cargo.toml @@ -9,6 +9,7 @@ edition = "2021" amqp_core = { path = "../amqp_core" } amqp_messaging = { path = "../amqp_messaging" } anyhow = "1.0.53" +bytes = "1.1.0" nom = "7.1.0" once_cell = "1.9.0" rand = "0.8.4" diff --git a/amqp_transport/src/connection.rs b/amqp_transport/src/connection.rs index 2628fca..55a20e9 100644 --- a/amqp_transport/src/connection.rs +++ b/amqp_transport/src/connection.rs @@ -95,7 +95,7 @@ impl Connection { &Frame { kind: FrameType::Method, channel, - payload, + payload: payload.into(), }, &mut self.stream, ) diff --git a/amqp_transport/src/frame.rs b/amqp_transport/src/frame.rs index 689b5de..c548233 100644 --- a/amqp_transport/src/frame.rs +++ b/amqp_transport/src/frame.rs @@ -1,5 +1,6 @@ use crate::error::{ConException, ProtocolError, Result}; use anyhow::Context; +use bytes::Bytes; use tokio::io::{AsyncReadExt, AsyncWriteExt}; use tracing::trace; @@ -18,7 +19,7 @@ pub struct Frame { pub kind: FrameType, pub channel: u16, /// Includes the whole payload, also including the metadata from each type. - pub payload: Vec, + pub payload: Bytes, } #[derive(Debug, Copy, Clone, PartialEq, Eq)] @@ -72,7 +73,7 @@ where let frame = Frame { kind, channel, - payload, + payload: payload.into(), }; trace!(?frame, "Received frame"); @@ -99,6 +100,7 @@ fn parse_frame_type(kind: u8, channel: u16) -> Result { #[cfg(test)] mod tests { use crate::frame::{Frame, FrameType}; + use bytes::Bytes; #[tokio::test] async fn read_small_body() { @@ -127,7 +129,7 @@ mod tests { Frame { kind: FrameType::Method, channel: 0, - payload: vec![1, 2, 3], + payload: Bytes::from_static(&[1, 2, 3]), } ); } diff --git a/amqp_transport/src/tests.rs b/amqp_transport/src/tests.rs index 1f6dc71..b6af887 100644 --- a/amqp_transport/src/tests.rs +++ b/amqp_transport/src/tests.rs @@ -22,7 +22,7 @@ async fn write_start_ok_frame() { let frame = frame::Frame { kind: FrameType::Method, channel: 0, - payload, + payload: payload.into(), }; let mut output = Vec::new();