pub struct Request<State: Clone + Send + Sync + 'static> { /* private fields */ }clients or servers only.Expand description
A request that came from either a TCP/UDP source.
Implementations§
Source§impl<State: Clone + Send + Sync + 'static> Request<State>
 
impl<State: Clone + Send + Sync + 'static> Request<State>
pub fn new_with_state( body: Bytes, source_address: SocketAddr, state: State, stream_id: Option<u64>, ) -> Self
pub fn new_with_state_and_read_amount( body: Bytes, source_address: SocketAddr, state: State, stream_id: Option<u64>, explicit_read_amount: usize, ) -> Self
clients only.pub fn new_with_state_and_stream( body: Bytes, source_address: SocketAddr, state: State, stream_id: Option<u64>, stream_and_nagle_cache: Arc<Mutex<Option<(Option<BytesMut>, TcpStream)>>>, ) -> Self
servers only.Sourcepub const fn update_request_source(
    &mut self,
    source: SocketAddr,
    stream_id: Option<u64>,
)
 
pub const fn update_request_source( &mut self, source: SocketAddr, stream_id: Option<u64>, )
Update the core request source.
Sourcepub fn stream_id(&self) -> u64
 
pub fn stream_id(&self) -> u64
A unique identifier for the “stream” or connection of a packet.
In UDP which doesn’t have stream this uses the source address as the core identifier.
Sourcepub const fn explicit_read_amount(&self) -> Option<usize>
 Available on crate feature clients only.
pub const fn explicit_read_amount(&self) -> Option<usize>
clients only.A client has requested we send this request, and then read an explicit amount of bytes, ignoring whatever the current NAGLE method is.
This is a utility only available when we are a client, and are receiving a packet that changes what our nagle split is for it’s specific response while keeping the nagle the same otherwise.
Sourcepub const fn set_explicit_read_amount(&mut self, new_read_amount: usize)
 Available on crate feature clients only.
pub const fn set_explicit_read_amount(&mut self, new_read_amount: usize)
clients only.Override the current NAGLE algorithm being used by this client for this single request/response pair. Do a single non-nagle’d receive.
Sourcepub async fn unsafe_read_more_bytes_from_stream(
    &self,
    to_read: usize,
) -> Result<Bytes, CatBridgeError>
 Available on crate feature servers only.
pub async fn unsafe_read_more_bytes_from_stream( &self, to_read: usize, ) -> Result<Bytes, CatBridgeError>
servers only.Attempt to read more bytes from the TCP Stream directly.
This is a utility only available when we are a server, and need to request more info from the client.
THIS WILL BYPASS EVERYYTHING PROVIDED BY TCP SERVER, AND JUST READ RAW BYTES FROM THE STREAM. This is only for requests like File I/O which need to bypass all the logic provided by the stream classes.
§Errors
If the request has been moved outside of it’s original processing place, and it is no longer possible to read from the stream.
pub const fn body(&self) -> &Bytes
pub fn body_mut(&mut self) -> &mut Bytes
pub fn set_body(&mut self, new_body: Bytes)
pub fn body_owned(self) -> Bytes
pub const fn extensions(&self) -> &Extensions
pub fn extensions_mut(&mut self) -> &mut Extensions
pub fn extensions_owned(self) -> Extensions
pub const fn state(&self) -> &State
pub fn state_mut(&mut self) -> &mut State
pub const fn source(&self) -> &SocketAddr
pub fn is_ipv4(&self) -> bool
pub fn is_ipv6(&self) -> bool
Trait Implementations§
Source§impl<Ty, State: Clone + Send + Sync + 'static> FromRef<Request<State>> for Option<Extension<Ty>>
Available on crate feature servers only. 
impl<Ty, State: Clone + Send + Sync + 'static> FromRef<Request<State>> for Option<Extension<Ty>>
servers only.Source§impl<State: Clone + Send + Sync + 'static> FromRequest<State> for Request<State>
 
impl<State: Clone + Send + Sync + 'static> FromRequest<State> for Request<State>
async fn from_request(req: Request<State>) -> Result<Self, CatBridgeError>
Source§impl<ServiceTy, ExtensionTy, State> Service<Request<State>> for AddExtension<ServiceTy, ExtensionTy>
Available on crate feature servers only. 
impl<ServiceTy, ExtensionTy, State> Service<Request<State>> for AddExtension<ServiceTy, ExtensionTy>
servers only.Source§impl<HandlerTy, HandlerParamsTy, State: Clone + Send + Sync + 'static> Service<Request<State>> for HandlerAsService<HandlerTy, HandlerParamsTy>
Available on crate feature servers only. 
impl<HandlerTy, HandlerParamsTy, State: Clone + Send + Sync + 'static> Service<Request<State>> for HandlerAsService<HandlerTy, HandlerParamsTy>
servers only.Source§type Error = CatBridgeError
 
type Error = CatBridgeError
Source§type Future = <HandlerTy as Handler<HandlerParamsTy, State>>::Future
 
type Future = <HandlerTy as Handler<HandlerParamsTy, State>>::Future
Source§impl<Layered, State: Clone + Send + Sync + 'static> Service<Request<State>> for LayeredRequestID<Layered>
 
impl<Layered, State: Clone + Send + Sync + 'static> Service<Request<State>> for LayeredRequestID<Layered>
Source§type Response = <Layered as Service<Request<State>>>::Response
 
type Response = <Layered as Service<Request<State>>>::Response
Source§type Future = Instrumented<<Layered as Service<Request<State>>>::Future>
 
type Future = Instrumented<<Layered as Service<Request<State>>>::Future>
Source§impl<Layered, State: Clone + Send + Sync + 'static> Service<Request<State>> for LayeredSataConnectionFlags<Layered>
Available on crate feature servers only. 
impl<Layered, State: Clone + Send + Sync + 'static> Service<Request<State>> for LayeredSataConnectionFlags<Layered>
servers only.Source§impl<Layered, State: Clone + Send + Sync + 'static> Service<Request<State>> for LayeredStreamID<Layered>
 
impl<Layered, State: Clone + Send + Sync + 'static> Service<Request<State>> for LayeredStreamID<Layered>
Source§type Response = <Layered as Service<Request<State>>>::Response
 
type Response = <Layered as Service<Request<State>>>::Response
Source§type Future = Instrumented<<Layered as Service<Request<State>>>::Future>
 
type Future = Instrumented<<Layered as Service<Request<State>>>::Future>
Source§impl<Layered, State: Clone + Send + Sync + 'static> Service<Request<State>> for LayeredWALMessage<Layered>
Available on crate feature servers only. 
impl<Layered, State: Clone + Send + Sync + 'static> Service<Request<State>> for LayeredWALMessage<Layered>
servers only.Source§type Response = <Layered as Service<Request<State>>>::Response
 
type Response = <Layered as Service<Request<State>>>::Response
Source§type Future = Pin<Box<dyn Future<Output = Result<<LayeredWALMessage<Layered> as Service<Request<State>>>::Response, <LayeredWALMessage<Layered> as Service<Request<State>>>::Error>> + Send>>
 
type Future = Pin<Box<dyn Future<Output = Result<<LayeredWALMessage<Layered> as Service<Request<State>>>::Response, <LayeredWALMessage<Layered> as Service<Request<State>>>::Error>> + Send>>
Source§impl<State: Clone + Send + Sync + 'static> Service<Request<State>> for Router<State>
Available on crate feature servers only. 
impl<State: Clone + Send + Sync + 'static> Service<Request<State>> for Router<State>
servers only.Source§type Error = Infallible
 
type Error = Infallible
Source§type Future = Pin<Box<dyn Future<Output = Result<<Router<State> as Service<Request<State>>>::Response, <Router<State> as Service<Request<State>>>::Error>> + Send>>
 
type Future = Pin<Box<dyn Future<Output = Result<<Router<State> as Service<Request<State>>>::Response, <Router<State> as Service<Request<State>>>::Error>> + Send>>
Source§impl<State: Clone + Send + Sync + 'static> Structable for Request<State>
 
impl<State: Clone + Send + Sync + 'static> Structable for Request<State>
Source§fn definition(&self) -> StructDef<'_>
 
fn definition(&self) -> StructDef<'_>
Auto Trait Implementations§
impl<State> !Freeze for Request<State>
impl<State> !RefUnwindSafe for Request<State>
impl<State> Send for Request<State>
impl<State> Sync for Request<State>
impl<State> Unpin for Request<State>where
    State: Unpin,
impl<State> !UnwindSafe for Request<State>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
    T: Clone,
 
impl<T> CloneToUninit for Twhere
    T: Clone,
Source§impl<T> Instrument for T
 
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
 
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
 
fn in_current_span(self) -> Instrumented<Self>
Source§impl<D> OwoColorize for D
 
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
    C: Color,
 
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
    C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
    C: Color,
 
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
    C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
 
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
 
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
 
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
 
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
 
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
 
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
 
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
 
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
 
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
 
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
 
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
 
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
 
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
 
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
 
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
 
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
 
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
 
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
 
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
 
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
 
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
 
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
 
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
 
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
 
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
 
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
 
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
 
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
 
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
 
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
 
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
 
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
 
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
 
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
 
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
 
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
 
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
 
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
 
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
 
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
 
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
 
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
 
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
 
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
 
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
 
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
    Color: DynColor,
 
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
    Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
    Color: DynColor,
 
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
    Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more