h2::codec

Struct Codec

Source
pub struct Codec<T, B> {
    inner: FramedRead<FramedWrite<T, B>>,
}

Fields§

§inner: FramedRead<FramedWrite<T, B>>

Implementations§

Source§

impl<T, B> Codec<T, B>
where T: AsyncRead + AsyncWrite + Unpin, B: Buf,

Source

pub fn new(io: T) -> Self

Returns a new Codec with the default max frame size

Source

pub fn with_max_recv_frame_size(io: T, max_frame_size: usize) -> Self

Returns a new Codec with the given maximum frame size

Source§

impl<T, B> Codec<T, B>

Source

pub fn set_max_recv_frame_size(&mut self, val: usize)

Updates the max received frame size.

The change takes effect the next time a frame is decoded. In other words, if a frame is currently in process of being decoded with a frame size greater than val but less than the max frame size in effect before calling this function, then the frame will be allowed.

Source

pub fn max_send_frame_size(&self) -> usize

Returns the max frame size that can be sent to the peer.

Source

pub fn set_max_send_frame_size(&mut self, val: usize)

Set the peer’s max frame size.

Source

pub fn set_send_header_table_size(&mut self, val: usize)

Set the peer’s header table size size.

Source

pub fn set_recv_header_table_size(&mut self, val: usize)

Set the decoder header table size size.

Source

pub fn set_max_recv_header_list_size(&mut self, val: usize)

Set the max header list size that can be received.

Source

pub fn get_mut(&mut self) -> &mut T

Get a mutable reference to the inner stream.

Source

pub(crate) fn take_last_data_frame(&mut self) -> Option<Data<B>>

Takes the data payload value that was fully written to the socket

Source

fn framed_write(&mut self) -> &mut FramedWrite<T, B>

Source§

impl<T, B> Codec<T, B>
where T: AsyncWrite + Unpin, B: Buf,

Source

pub fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<()>>

Returns Ready when the codec can buffer a frame

Source

pub fn buffer(&mut self, item: Frame<B>) -> Result<(), UserError>

Buffer a frame.

poll_ready must be called first to ensure that a frame may be accepted.

TODO: Rename this to avoid conflicts with Sink::buffer

Source

pub fn flush(&mut self, cx: &mut Context<'_>) -> Poll<Result<()>>

Flush buffered data to the wire

Source

pub fn shutdown(&mut self, cx: &mut Context<'_>) -> Poll<Result<()>>

Shutdown the send half

Trait Implementations§

Source§

impl<T: Debug, B: Debug> Debug for Codec<T, B>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<T> From<T> for Codec<T, Bytes>
where T: AsyncRead + AsyncWrite + Unpin,

Source§

fn from(src: T) -> Self

Converts to this type from the input type.
Source§

impl<T, B> Sink<Frame<B>> for Codec<T, B>
where T: AsyncWrite + Unpin, B: Buf,

Source§

fn poll_ready( self: Pin<&mut Self>, cx: &mut Context<'_>, ) -> Poll<Result<(), Self::Error>>

Returns Ready when the codec can buffer a frame

Source§

fn poll_flush( self: Pin<&mut Self>, cx: &mut Context<'_>, ) -> Poll<Result<(), Self::Error>>

Flush buffered data to the wire

Source§

type Error = SendError

The type of value produced by the sink when an error occurs.
Source§

fn start_send(self: Pin<&mut Self>, item: Frame<B>) -> Result<(), Self::Error>

Begin the process of sending a value to the sink. Each call to this function must be preceded by a successful call to poll_ready which returned Poll::Ready(Ok(())). Read more
Source§

fn poll_close( self: Pin<&mut Self>, cx: &mut Context<'_>, ) -> Poll<Result<(), Self::Error>>

Flush any remaining output and close this sink, if necessary. Read more
Source§

impl<T, B> Stream for Codec<T, B>
where T: AsyncRead + Unpin,

Source§

type Item = Result<Frame, Error>

Values yielded by the stream.
Source§

fn poll_next( self: Pin<&mut Self>, cx: &mut Context<'_>, ) -> Poll<Option<Self::Item>>

Attempt to pull out the next value of this stream, registering the current task for wakeup if the value is not yet available, and returning None if the stream is exhausted. Read more
Source§

fn size_hint(&self) -> (usize, Option<usize>)

Returns the bounds on the remaining length of the stream. Read more

Auto Trait Implementations§

§

impl<T, B> !Freeze for Codec<T, B>

§

impl<T, B> RefUnwindSafe for Codec<T, B>

§

impl<T, B> Send for Codec<T, B>
where T: Send, B: Send,

§

impl<T, B> Sync for Codec<T, B>
where T: Sync, B: Sync,

§

impl<T, B> Unpin for Codec<T, B>
where T: Unpin,

§

impl<T, B> UnwindSafe for Codec<T, B>
where T: UnwindSafe, B: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<S, T, E> TryStream for S
where S: Stream<Item = Result<T, E>> + ?Sized,

Source§

type Ok = T

The type of successful values yielded by this future
Source§

type Error = E

The type of failures yielded by this future
Source§

fn try_poll_next( self: Pin<&mut S>, cx: &mut Context<'_>, ) -> Poll<Option<Result<<S as TryStream>::Ok, <S as TryStream>::Error>>>

Poll this TryStream as if it were a Stream. Read more
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more