Spec-Zone.ru › Tokio

Структура Split

pub struct Split<R> { /* private fields */ }
Доступно только при включённой функции crate io-util.

Разделитель для метода split.

Split можно преобразовать в Stream с помощью SplitStream.

Реализации

impl<R> Split<R>
where R: AsyncBufRead + Unpin,

pub async fn next_segment(&mut self) -> Result<Option<Vec<u8>>>

Возвращает следующий сегмент потока.

Примеры
use tokio::io::AsyncBufReadExt;

let mut segments = my_buf_read.split(b'f');

while let Some(segment) = segments.next_segment().await? {
    println!("length = {}", segment.len())
}

impl<R> Split<R>
where R: AsyncBufRead,

pub fn poll_next_segment( self: Pin<&mut Self>, cx: &mut Context<'_>, ) -> Poll<Result<Option<Vec<u8>>>>

Проверяет наличие следующего сегмента в потоке.

Этот метод возвращает:

  • Poll::Pending, если следующий сегмент ещё недоступен.
  • Poll::Ready(Ok(Some(segment))), если следующий сегмент доступен.
  • Poll::Ready(Ok(None)), если в этом потоке больше нет сегментов.
  • Poll::Ready(Err(err)), если при чтении следующего сегмента произошла ошибка ввода-вывода.

Если метод возвращает Poll::Pending, для Waker в переданном Context будет запланировано пробуждение, когда в базовом ресурсе ввода-вывода появятся дополнительные байты.

Обратите внимание: при нескольких вызовах poll_next_segment пробуждение будет запланировано только для Waker из Context, переданного при последнем вызове.

Реализации трейтов

impl<R: Debug> Debug for Split<R>

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

Форматирует значение с помощью указанного форматтера. Подробнее

impl<'__pin, R> Unpin for Split<R>
where PinnedFieldsOf<__Origin<'__pin, R>>: Unpin,

Автоматические реализации трейтов

impl<R> Freeze for Split<R>
where R: Freeze,

impl<R> RefUnwindSafe for Split<R>
where R: RefUnwindSafe,

impl<R> Send for Split<R>
where R: Send,

impl<R> Sync for Split<R>
where R: Sync,

impl<R> UnsafeUnpin for Split<R>
where R: UnsafeUnpin,

impl<R> UnwindSafe for Split<R>
where R: UnwindSafe,

Обобщённые реализации

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

fn type_id(&self) -> TypeId

Получает TypeId self. Подробнее

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

fn borrow(&self) -> &T

Неизменяемо заимствует данные из принадлежащего владельцу значения. Подробнее

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

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

Изменяемо заимствует данные из принадлежащего владельцу значения. Подробнее

impl<T> From<T> for T

fn from(t: T) -> T

Возвращает аргумент без изменений.

impl<T> Instrument for T

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

Инструментирует этот тип с помощью указанного Span, возвращая обёртку Instrumented. Подробнее

fn in_current_span(self) -> Instrumented<Self> ⓘ

Инструментирует этот тип с помощью текущего Span, возвращая обёртку Instrumented. Подробнее

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

fn into(self) -> U

Вызывает U::from(self).

Иными словами, это преобразование выполняет действия, выбранные реализацией From<T> for U.

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

type Error = Infallible

Тип, возвращаемый в случае ошибки преобразования.

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

Выполняет преобразование.

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

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

Тип, возвращаемый в случае ошибки преобразования.

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

Выполняет преобразование.

impl<T> WithSubscriber for T

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

Присоединяет к этому типу переданный Subscriber и возвращает обёртку WithDispatch. Подробнее

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Присоединяет к этому типу текущий стандартный Subscriber и возвращает обёртку WithDispatch. Подробнее

MIT License
Copyright © Tokio Contributors
https://docs.rs/tokio/1.53.1/tokio/io/struct.Split.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API