chore(proto): crate formatting
This commit is contained in:
parent
505f59b354
commit
a08376766c
18 changed files with 103 additions and 75 deletions
|
|
@ -1,9 +1,9 @@
|
|||
use crate::message::backend::BackendMessage;
|
||||
use crate::writer::errors::ProtoWriteError;
|
||||
use crate::writer::oneway::OneWayProtoWriter;
|
||||
use crate::writer::protowriter::ProtoWriter;
|
||||
use async_trait::async_trait;
|
||||
use tokio::io::{AsyncWrite, AsyncWriteExt};
|
||||
use crate::writer::errors::ProtoWriteError;
|
||||
|
||||
#[async_trait]
|
||||
pub trait BackendProtoWriter: OneWayProtoWriter<BackendMessage> {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
use crate::message::errors::ProtoSerializeError;
|
||||
use thiserror::Error;
|
||||
use tokio::io;
|
||||
use crate::message::errors::ProtoSerializeError;
|
||||
|
||||
#[derive(Debug, Error)]
|
||||
pub enum ProtoWriteError {
|
||||
|
|
|
|||
|
|
@ -1,24 +1,33 @@
|
|||
use crate::message::frontend::FrontendMessage;
|
||||
use crate::writer::oneway::OneWayProtoWriter;
|
||||
use async_trait::async_trait;
|
||||
use tokio::io::{AsyncWrite, AsyncWriteExt};
|
||||
use crate::message::primitive::data::MessageData;
|
||||
use crate::message::special::{CancelRequestData, StartupMessageData};
|
||||
use crate::writer::errors::ProtoWriteError;
|
||||
use crate::writer::oneway::OneWayProtoWriter;
|
||||
use crate::writer::protowriter::ProtoWriter;
|
||||
use async_trait::async_trait;
|
||||
use tokio::io::{AsyncWrite, AsyncWriteExt};
|
||||
|
||||
#[async_trait]
|
||||
pub trait FrontendProtoWriter: OneWayProtoWriter<FrontendMessage> {
|
||||
async fn write_startup_message(&mut self, startup_message: StartupMessageData) -> Result<(), ProtoWriteError>;
|
||||
async fn write_cancel_request(&mut self, cancel_request: CancelRequestData) -> Result<(), ProtoWriteError>;
|
||||
async fn write_startup_message(
|
||||
&mut self,
|
||||
startup_message: StartupMessageData,
|
||||
) -> Result<(), ProtoWriteError>;
|
||||
async fn write_cancel_request(
|
||||
&mut self,
|
||||
cancel_request: CancelRequestData,
|
||||
) -> Result<(), ProtoWriteError>;
|
||||
}
|
||||
|
||||
#[async_trait]
|
||||
impl<W> FrontendProtoWriter for ProtoWriter<W>
|
||||
where
|
||||
W: AsyncWrite + Unpin + Send
|
||||
W: AsyncWrite + Unpin + Send,
|
||||
{
|
||||
async fn write_startup_message(&mut self, startup_message: StartupMessageData) -> Result<(), ProtoWriteError> {
|
||||
async fn write_startup_message(
|
||||
&mut self,
|
||||
startup_message: StartupMessageData,
|
||||
) -> Result<(), ProtoWriteError> {
|
||||
let data = startup_message.serialize()?;
|
||||
let length = data.len() + 4;
|
||||
|
||||
|
|
@ -28,7 +37,10 @@ where
|
|||
Ok(())
|
||||
}
|
||||
|
||||
async fn write_cancel_request(&mut self, cancel_request: CancelRequestData) -> Result<(), ProtoWriteError> {
|
||||
async fn write_cancel_request(
|
||||
&mut self,
|
||||
cancel_request: CancelRequestData,
|
||||
) -> Result<(), ProtoWriteError> {
|
||||
let data = cancel_request.serialize()?;
|
||||
let length = data.len() + 4;
|
||||
|
||||
|
|
@ -74,20 +86,23 @@ mod tests {
|
|||
let writer = BufWriter::new(Vec::new());
|
||||
let mut writer = ProtoWriter::new(writer);
|
||||
|
||||
writer.write_startup_message(StartupMessageData {
|
||||
version: 196608,
|
||||
params: vec![
|
||||
("user".into(), "postgres".into()),
|
||||
("database".into(), "postgres".into()),
|
||||
],
|
||||
}).await.unwrap();
|
||||
writer
|
||||
.write_startup_message(StartupMessageData {
|
||||
version: 196608,
|
||||
params: vec![
|
||||
("user".into(), "postgres".into()),
|
||||
("database".into(), "postgres".into()),
|
||||
],
|
||||
})
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
assert_eq!(
|
||||
writer.inner.buffer(),
|
||||
vec![
|
||||
0, 0, 0, 40, 0, 3, 0, 0, b'u', b's', b'e', b'r', 0, b'p', b'o',
|
||||
b's', b't', b'g', b'r', b'e', b's', 0, b'd', b'a', b't', b'a', b'b', b'a', b's',
|
||||
b'e', 0, b'p', b'o', b's', b't', b'g', b'r', b'e', b's', 0
|
||||
0, 0, 0, 40, 0, 3, 0, 0, b'u', b's', b'e', b'r', 0, b'p', b'o', b's', b't', b'g',
|
||||
b'r', b'e', b's', 0, b'd', b'a', b't', b'a', b'b', b'a', b's', b'e', 0, b'p', b'o',
|
||||
b's', b't', b'g', b'r', b'e', b's', 0
|
||||
]
|
||||
);
|
||||
}
|
||||
|
|
@ -97,16 +112,17 @@ mod tests {
|
|||
let writer = BufWriter::new(Vec::new());
|
||||
let mut writer = ProtoWriter::new(writer);
|
||||
|
||||
writer.write_cancel_request(CancelRequestData {
|
||||
pid: 123,
|
||||
secret: 234,
|
||||
}).await.unwrap();
|
||||
writer
|
||||
.write_cancel_request(CancelRequestData {
|
||||
pid: 123,
|
||||
secret: 234,
|
||||
})
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
assert_eq!(
|
||||
writer.inner.buffer(),
|
||||
vec![
|
||||
0, 0, 0, 12, 0, 0, 0, 123, 0, 0, 0, 234
|
||||
]
|
||||
vec![0, 0, 0, 12, 0, 0, 0, 123, 0, 0, 0, 234]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
pub mod backend;
|
||||
pub mod errors;
|
||||
pub mod frontend;
|
||||
pub mod oneway;
|
||||
pub mod protowriter;
|
||||
pub mod errors;
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
use crate::message::proto_message::ProtoMessage;
|
||||
use crate::writer::errors::ProtoWriteError;
|
||||
use crate::writer::protowriter::ProtoWriter;
|
||||
use async_trait::async_trait;
|
||||
use tokio::io::{AsyncWrite, AsyncWriteExt};
|
||||
use crate::writer::errors::ProtoWriteError;
|
||||
|
||||
#[async_trait]
|
||||
pub trait OneWayProtoWriter<T>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue