mirror of
https://github.com/fafhrd91/actix-web
synced 2025-06-25 14:49:20 +02:00
split request and response modules (#2530)
This commit is contained in:
@ -5,13 +5,15 @@ use bitflags::bitflags;
|
||||
use bytes::{Bytes, BytesMut};
|
||||
use http::{Method, Version};
|
||||
|
||||
use super::decoder::{PayloadDecoder, PayloadItem, PayloadType};
|
||||
use super::{decoder, encoder, reserve_readbuf};
|
||||
use super::{Message, MessageType};
|
||||
use crate::body::BodySize;
|
||||
use crate::config::ServiceConfig;
|
||||
use crate::error::{ParseError, PayloadError};
|
||||
use crate::message::{ConnectionType, RequestHeadType, ResponseHead};
|
||||
use super::{
|
||||
decoder::{self, PayloadDecoder, PayloadItem, PayloadType},
|
||||
encoder, reserve_readbuf, Message, MessageType,
|
||||
};
|
||||
use crate::{
|
||||
body::BodySize,
|
||||
error::{ParseError, PayloadError},
|
||||
ConnectionType, RequestHeadType, ResponseHead, ServiceConfig,
|
||||
};
|
||||
|
||||
bitflags! {
|
||||
struct Flags: u8 {
|
||||
|
@ -5,15 +5,13 @@ use bitflags::bitflags;
|
||||
use bytes::BytesMut;
|
||||
use http::{Method, Version};
|
||||
|
||||
use super::decoder::{PayloadDecoder, PayloadItem, PayloadType};
|
||||
use super::{decoder, encoder};
|
||||
use super::{Message, MessageType};
|
||||
use crate::body::BodySize;
|
||||
use crate::config::ServiceConfig;
|
||||
use crate::error::ParseError;
|
||||
use crate::message::ConnectionType;
|
||||
use crate::request::Request;
|
||||
use crate::response::Response;
|
||||
use super::{
|
||||
decoder::{self, PayloadDecoder, PayloadItem, PayloadType},
|
||||
encoder, Message, MessageType,
|
||||
};
|
||||
use crate::{
|
||||
body::BodySize, error::ParseError, ConnectionType, Request, Response, ServiceConfig,
|
||||
};
|
||||
|
||||
bitflags! {
|
||||
struct Flags: u8 {
|
||||
@ -199,7 +197,7 @@ mod tests {
|
||||
use http::Method;
|
||||
|
||||
use super::*;
|
||||
use crate::HttpMessage;
|
||||
use crate::HttpMessage as _;
|
||||
|
||||
#[actix_rt::test]
|
||||
async fn test_http_request_chunked_payload_and_next_message() {
|
||||
|
@ -2,17 +2,14 @@ use std::{convert::TryFrom, io, marker::PhantomData, mem::MaybeUninit, task::Pol
|
||||
|
||||
use actix_codec::Decoder;
|
||||
use bytes::{Bytes, BytesMut};
|
||||
use http::header::{HeaderName, HeaderValue};
|
||||
use http::{header, Method, StatusCode, Uri, Version};
|
||||
use http::{
|
||||
header::{self, HeaderName, HeaderValue},
|
||||
Method, StatusCode, Uri, Version,
|
||||
};
|
||||
use log::{debug, error, trace};
|
||||
|
||||
use super::chunked::ChunkedState;
|
||||
use crate::{
|
||||
error::ParseError,
|
||||
header::HeaderMap,
|
||||
message::{ConnectionType, ResponseHead},
|
||||
request::Request,
|
||||
};
|
||||
use crate::{error::ParseError, header::HeaderMap, ConnectionType, Request, ResponseHead};
|
||||
|
||||
pub(crate) const MAX_BUFFER_SIZE: usize = 131_072;
|
||||
const MAX_HEADERS: usize = 96;
|
||||
@ -50,7 +47,7 @@ pub(crate) enum PayloadLength {
|
||||
}
|
||||
|
||||
pub(crate) trait MessageType: Sized {
|
||||
fn set_connection_type(&mut self, ctype: Option<ConnectionType>);
|
||||
fn set_connection_type(&mut self, conn_type: Option<ConnectionType>);
|
||||
|
||||
fn set_expect(&mut self);
|
||||
|
||||
@ -193,8 +190,8 @@ pub(crate) trait MessageType: Sized {
|
||||
}
|
||||
|
||||
impl MessageType for Request {
|
||||
fn set_connection_type(&mut self, ctype: Option<ConnectionType>) {
|
||||
if let Some(ctype) = ctype {
|
||||
fn set_connection_type(&mut self, conn_type: Option<ConnectionType>) {
|
||||
if let Some(ctype) = conn_type {
|
||||
self.head_mut().set_connection_type(ctype);
|
||||
}
|
||||
}
|
||||
@ -278,8 +275,8 @@ impl MessageType for Request {
|
||||
}
|
||||
|
||||
impl MessageType for ResponseHead {
|
||||
fn set_connection_type(&mut self, ctype: Option<ConnectionType>) {
|
||||
if let Some(ctype) = ctype {
|
||||
fn set_connection_type(&mut self, conn_type: Option<ConnectionType>) {
|
||||
if let Some(ctype) = conn_type {
|
||||
ResponseHead::set_connection_type(self, ctype);
|
||||
}
|
||||
}
|
||||
|
@ -1,19 +1,19 @@
|
||||
use std::io::Write;
|
||||
use std::marker::PhantomData;
|
||||
use std::ptr::copy_nonoverlapping;
|
||||
use std::slice::from_raw_parts_mut;
|
||||
use std::{cmp, io};
|
||||
use std::{
|
||||
cmp,
|
||||
io::{self, Write as _},
|
||||
marker::PhantomData,
|
||||
ptr::copy_nonoverlapping,
|
||||
slice::from_raw_parts_mut,
|
||||
};
|
||||
|
||||
use bytes::{BufMut, BytesMut};
|
||||
|
||||
use crate::{
|
||||
body::BodySize,
|
||||
config::ServiceConfig,
|
||||
header::{map::Value, HeaderMap, HeaderName},
|
||||
header::{CONNECTION, CONTENT_LENGTH, DATE, TRANSFER_ENCODING},
|
||||
helpers,
|
||||
message::{ConnectionType, RequestHeadType},
|
||||
Response, StatusCode, Version,
|
||||
header::{
|
||||
map::Value, HeaderMap, HeaderName, CONNECTION, CONTENT_LENGTH, DATE, TRANSFER_ENCODING,
|
||||
},
|
||||
helpers, ConnectionType, RequestHeadType, Response, ServiceConfig, StatusCode, Version,
|
||||
};
|
||||
|
||||
const AVERAGE_HEADER_SIZE: usize = 30;
|
||||
|
@ -1,8 +1,7 @@
|
||||
use actix_service::{Service, ServiceFactory};
|
||||
use actix_utils::future::{ready, Ready};
|
||||
|
||||
use crate::error::Error;
|
||||
use crate::request::Request;
|
||||
use crate::{Error, Request};
|
||||
|
||||
pub struct ExpectHandler;
|
||||
|
||||
|
@ -59,7 +59,7 @@ pub(crate) fn reserve_readbuf(src: &mut BytesMut) {
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
use crate::request::Request;
|
||||
use crate::Request;
|
||||
|
||||
impl Message<Request> {
|
||||
pub fn message(self) -> Request {
|
||||
|
@ -2,9 +2,7 @@ use actix_codec::Framed;
|
||||
use actix_service::{Service, ServiceFactory};
|
||||
use futures_core::future::LocalBoxFuture;
|
||||
|
||||
use crate::error::Error;
|
||||
use crate::h1::Codec;
|
||||
use crate::request::Request;
|
||||
use crate::{h1::Codec, Error, Request};
|
||||
|
||||
pub struct UpgradeHandler;
|
||||
|
||||
|
@ -9,9 +9,8 @@ use pin_project_lite::pin_project;
|
||||
|
||||
use crate::{
|
||||
body::{BodySize, MessageBody},
|
||||
error::Error,
|
||||
h1::{Codec, Message},
|
||||
response::Response,
|
||||
Error, Response,
|
||||
};
|
||||
|
||||
pin_project! {
|
||||
|
Reference in New Issue
Block a user