Spec-Zone.ru › Tokio

Структура PermitIterator

pub struct PermitIterator<'a, T> { /* private fields */ }
Доступно только при включённой функции крейта sync.

Iterator из Permit, который можно использовать для удержания n слотов в канале.

Значения PermitIterator возвращаются методами Sender::reserve_many() и Sender::try_reserve_many() и используются для гарантирования ёмкости канала перед созданием n сообщений для отправки.

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

impl<T> Debug for PermitIterator<'_, T>

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

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

impl<T> Drop for PermitIterator<'_, T>

fn drop(&mut self)

Выполняет деструктор этого типа. Подробнее

fn pin_drop(self: Pin<&mut Self>)

🔬Это экспериментальный API, доступный только в nightly-версии. (pin_ergonomics)
Выполняет деструктор этого типа, но, в отличие от Drop::drop, требует, чтобы self был закреплён. Подробнее

impl<T> ExactSizeIterator for PermitIterator<'_, T>

1.0.0 ·

fn len(&self) -> usize

Возвращает точную оставшуюся длину итератора. Подробнее

fn is_empty(&self) -> bool

🔬Это экспериментальный API, доступный только в nightly-версии. (exact_size_is_empty)
Возвращает true, если итератор пуст. Подробнее

impl<T> FusedIterator for PermitIterator<'_, T>

impl<'a, T> Iterator for PermitIterator<'a, T>

type Item = Permit<'a, T>

Тип элементов, перебираемых итератором.

fn next(&mut self) -> Option<Self::Item>

Продвигает итератор и возвращает следующее значение. Подробнее

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

Возвращает границы оставшейся длины итератора. Подробнее

fn next_chunk<const N: usize>( &mut self, ) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>
where Self: Sized,

🔬Это экспериментальный API, доступный только в nightly-сборке. (iter_next_chunk)
Продвигает итератор и возвращает массив, содержащий следующие N значений. Подробнее
1.0.0 (const: нестабильно) ·

fn count(self) -> usize
where Self: Sized,

Потребляет итератор, подсчитывает число итераций и возвращает результат. Подробнее
1.0.0 (const: нестабильно) ·

fn last(self) -> Option<Self::Item>
where Self: Sized,

Потребляет итератор и возвращает последний элемент. Подробнее

fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>

🔬Это экспериментальный API, доступный только в nightly-сборке. (iter_advance_by)
Продвигает итератор на n элементов. Подробнее
1.0.0 (const: unstable) ·

fn nth(&mut self, n: usize) -> Option<Self::Item>

Возвращает элемент итератора с индексом n. Подробнее
1.28.0 (const: unstable) ·

fn step_by(self, step: usize) -> StepBy<Self>
where Self: Sized,

Создаёт итератор, начинающийся с той же позиции, но переходящий на заданное количество элементов при каждой итерации. Подробнее
1.0.0 (const: unstable) ·

fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>
where Self: Sized, U: IntoIterator<Item = Self::Item>,

Принимает два итератора и создаёт новый итератор, последовательно перебирающий оба. Подробнее
1.0.0 (const: unstable) ·

fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter>
where Self: Sized, U: IntoIterator,

«Объединяет» два итератора в один итератор пар. Подробнее

fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>
where Self: Sized, G: FnMut() -> Self::Item,

🔬Это экспериментальный API, доступный только в nightly-сборке. (iter_intersperse)
Создаёт новый итератор, который вставляет между элементами исходного итератора элемент, созданный с помощью separator. Подробнее
1.0.0 (const: нестабилен) ·

fn map<B, F>(self, f: F) -> Map<Self, F>
where Self: Sized, F: FnMut(Self::Item) -> B,

Принимает замыкание и создаёт итератор, который вызывает это замыкание для каждого элемента. Подробнее
1.21.0 (const: нестабилен) ·

fn for_each<F>(self, f: F)
where Self: Sized, F: FnMut(Self::Item),

Вызывает замыкание для каждого элемента итератора. Подробнее
1.0.0 (const: нестабилен) ·

fn filter<P>(self, predicate: P) -> Filter<Self, P>
where Self: Sized, P: FnMut(&Self::Item) -> bool,

Создаёт итератор, который использует замыкание, чтобы определить, следует ли выдавать элемент. Подробнее
1.0.0 (const: нестабилен) ·

fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>
where Self: Sized, F: FnMut(Self::Item) -> Option<B>,

Создаёт итератор, который одновременно фильтрует и преобразует элементы. Подробнее
1.0.0 (const: нестабилен) ·

fn enumerate(self) -> Enumerate<Self>
where Self: Sized,

Создаёт итератор, который выдаёт текущий номер итерации вместе со следующим значением. Подробнее
1.0.0 (const: нестабильна) ·

fn peekable(self) -> Peekable<Self>
where Self: Sized,

Создаёт итератор, который позволяет использовать методы peek и peek_mut, чтобы просматривать следующий элемент итератора, не извлекая его. Дополнительные сведения см. в документации этих методов. Подробнее
1.0.0 (const: нестабильна) ·

fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>
where Self: Sized, P: FnMut(&Self::Item) -> bool,

Создаёт итератор, который skip элементы на основе предиката. Подробнее
1.0.0 (const: нестабильна) ·

fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>
where Self: Sized, P: FnMut(&Self::Item) -> bool,

Создаёт итератор, который выдаёт элементы на основе предиката. Подробнее
1.57.0 (const: нестабильна) ·

fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>
where Self: Sized, P: FnMut(Self::Item) -> Option<B>,

Создаёт итератор, который выдаёт элементы на основе предиката и одновременно преобразует их. Подробнее
1.0.0 (const: нестабилен) ·

fn skip(self, n: usize) -> Skip<Self>
where Self: Sized,

Создаёт итератор, который пропускает первые n элементов. Подробнее
1.0.0 (const: нестабилен) ·

fn take(self, n: usize) -> Take<Self>
where Self: Sized,

Создаёт итератор, который выдаёт первые n элементов или меньше, если исходный итератор заканчивается раньше. Подробнее
1.0.0 (const: нестабилен) ·

fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F>
where Self: Sized, F: FnMut(&mut St, Self::Item) -> Option<B>,

Адаптер итератора, который, подобно fold, хранит внутреннее состояние, но, в отличие от fold, создаёт новый итератор. Подробнее
1.0.0 (const: нестабилен) ·

fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>
where Self: Sized, U: IntoIterator, F: FnMut(Self::Item) -> U,

Создаёт итератор, который работает как map, но разворачивает вложенную структуру. Подробнее

fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N>
where Self: Sized, F: FnMut(&[Self::Item; N]) -> R,

🔬Это экспериментальный API, доступный только в nightly. (iter_map_windows)
Вызывает заданную функцию f для каждого непрерывного окна размера N в self и возвращает итератор по результатам f. Как и в случае с slice::windows(), окна при отображении также перекрываются. Подробнее
1.0.0 (const: unstable) ·

fn fuse(self) -> Fuse<Self>
where Self: Sized,

Создает итератор, который завершается после первого None. Подробнее
1.0.0 (const: unstable) ·

fn inspect<F>(self, f: F) -> Inspect<Self, F>
where Self: Sized, F: FnMut(&Self::Item),

Выполняет действие с каждым элементом итератора, передавая значение дальше. Подробнее
1.0.0 (const: unstable) ·

fn by_ref(&mut self) -> &mut Self
where Self: Sized,

Создает адаптер «по ссылке» для этого экземпляра Iterator. Подробнее
1.0.0 (const: unstable) ·

fn collect<B>(self) -> B
where B: FromIterator<Self::Item>, Self: Sized,

Преобразует итератор в коллекцию. Подробнее

fn collect_into<E>(self, collection: &mut E) -> &mut E
where E: Extend<Self::Item>, Self: Sized,

🔬Это экспериментальный API, доступный только в nightly. (iter_collect_into)
Собирает все элементы итератора в коллекцию. Подробнее
1.0.0 (const: unstable) ·

fn partition<B, F>(self, f: F) -> (B, B)
where Self: Sized, B: Default + Extend<Self::Item>, F: FnMut(&Self::Item) -> bool,

Потребляет итератор, создавая из него две коллекции. Подробнее

fn is_partitioned<P>(self, predicate: P) -> bool
where Self: Sized, P: FnMut(Self::Item) -> bool,

🔬Это экспериментальный API, доступный только в nightly. (iter_is_partitioned)
Проверяет, разделены ли элементы этого итератора согласно заданному предикату так, что все элементы, для которых он возвращает true, предшествуют элементам, для которых он возвращает false. Подробнее
1.27.0 (const: unstable) ·

fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
where Self: Sized, F: FnMut(B, Self::Item) -> R, R: Try<Output = B>,

Метод итератора, применяющий функцию, пока она выполняется успешно, и возвращающий одно итоговое значение. Подробнее
1.27.0 (const: нестабильна) ·

fn try_for_each<F, R>(&mut self, f: F) -> R
where Self: Sized, F: FnMut(Self::Item) -> R, R: Try<Output = ()>,

Метод итератора, который применяет функцию, способную завершиться ошибкой, к каждому элементу итератора, останавливаясь при первой ошибке и возвращая её. Подробнее
1.0.0 (const: нестабильна) ·

fn fold<B, F>(self, init: B, f: F) -> B
where Self: Sized, F: FnMut(B, Self::Item) -> B,

Сворачивает каждый элемент в аккумулятор, применяя операцию, и возвращает итоговый результат. Подробнее
1.51.0 (const: нестабильна) ·

fn reduce<F>(self, f: F) -> Option<Self::Item>
where Self: Sized, F: FnMut(Self::Item, Self::Item) -> Self::Item,

Сводит элементы к одному, последовательно применяя операцию сведения. Подробнее

fn try_reduce<R>( &mut self, f: impl FnMut(Self::Item, Self::Item) -> R, ) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType
where Self: Sized, R: Try<Output = Self::Item>, <R as Try>::Residual: Residual<Option<Self::Item>>,

🔬Это экспериментальный API, доступный только в nightly. (iterator_try_reduce)
Сводит элементы к одному, многократно применяя операцию сведения. Если замыкание возвращает ошибку, она немедленно передаётся вызывающей стороне. Подробнее
1.0.0 (const: нестабилен) ·

fn all<F>(&mut self, f: F) -> bool
where Self: Sized, F: FnMut(Self::Item) -> bool,

Проверяет, соответствует ли каждый элемент итератора предикату. Подробнее
1.0.0 (const: нестабилен) ·

fn any<F>(&mut self, f: F) -> bool
where Self: Sized, F: FnMut(Self::Item) -> bool,

Проверяет, соответствует ли предикату хотя бы один элемент итератора. Подробнее
1.0.0 (const: нестабильно) ·

fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
where Self: Sized, P: FnMut(&Self::Item) -> bool,

Ищет элемент итератора, удовлетворяющий предикату. Подробнее
1.30.0 (const: нестабильно) ·

fn find_map<B, F>(&mut self, f: F) -> Option<B>
where Self: Sized, F: FnMut(Self::Item) -> Option<B>,

Применяет функцию к элементам итератора и возвращает первый результат, отличный от None. Подробнее

fn try_find<R>( &mut self, f: impl FnMut(&Self::Item) -> R, ) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType
where Self: Sized, R: Try<Output = bool>, <R as Try>::Residual: Residual<Option<Self::Item>>,

🔬Это экспериментальный API, доступный только в nightly. (try_find)
Применяет функцию к элементам итератора и возвращает первый результат true или первую ошибку. Подробнее
1.0.0 (const: нестабильна) ·

fn position<P>(&mut self, predicate: P) -> Option<usize>
where Self: Sized, P: FnMut(Self::Item) -> bool,

Выполняет поиск элемента в итераторе и возвращает его индекс. Подробнее
1.6.0 (const: нестабильна) ·

fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
where B: Ord, Self: Sized, F: FnMut(&Self::Item) -> B,

Возвращает элемент, для которого указанная функция выдаёт максимальное значение. Подробнее
1.15.0 (const: нестабильна) ·

fn max_by<F>(self, compare: F) -> Option<Self::Item>
where Self: Sized, F: FnMut(&Self::Item, &Self::Item) -> Ordering,

Возвращает элемент, который имеет максимальное значение согласно указанной функции сравнения. Подробнее
1.6.0 (const: нестабильна) ·

fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
where B: Ord, Self: Sized, F: FnMut(&Self::Item) -> B,

Возвращает элемент, для которого указанная функция выдаёт минимальное значение. Подробнее
1.15.0 (const: нестабилен) ·

fn min_by<F>(self, compare: F) -> Option<Self::Item>
where Self: Sized, F: FnMut(&Self::Item, &Self::Item) -> Ordering,

Возвращает элемент, имеющий минимальное значение согласно заданной функции сравнения. Подробнее
1.0.0 (const: нестабилен) ·

fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
where FromA: Default + Extend<A>, FromB: Default + Extend<B>, Self: Sized + Iterator<Item = (A, B)>,

Преобразует итератор пар в пару контейнеров. Подробнее
1.36.0 (const: нестабилен) ·

fn copied<'a, T>(self) -> Copied<Self>
where T: Copy + 'a, Self: Sized + Iterator<Item = &'a T>,

Создаёт итератор, копирующий все свои элементы. Подробнее
1.0.0 (const: нестабилен) ·

fn cloned<'a, T>(self) -> Cloned<Self>
where T: Clone + 'a, Self: Sized + Iterator<Item = &'a T>,

Создаёт итератор, который clone все свои элементы. Подробнее

fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>
where Self: Sized,

🔬Это экспериментальный API, доступный только в ночной версии. (iter_array_chunks)
Возвращает итератор, выдающий за один раз по N элементам исходного итератора. Подробнее
1.11.0 (const: unstable) ·

fn sum<S>(self) -> S
where Self: Sized, S: Sum<Self::Item>,

Суммирует элементы итератора. Подробнее
1.11.0 (const: unstable) ·

fn product<P>(self) -> P
where Self: Sized, P: Product<Self::Item>,

Перебирает весь итератор, перемножая все его элементы. Подробнее

fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
where Self: Sized, I: IntoIterator, F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Ordering,

🔬Это экспериментальный API, доступный только в ночной версии. (iter_order_by)
Лексикографически сравнивает элементы этого Iterator с элементами другого итератора, используя указанную функцию сравнения. Подробнее
1.5.0 (const: нестабильно) ·

fn partial_cmp<I>(self, other: I) -> Option<Ordering>
where I: IntoIterator, Self::Item: PartialOrd<<I as IntoIterator>::Item>, Self: Sized,

Лексикографически сравнивает элементы PartialOrd этого Iterator с элементами другого. Сравнение работает как вычисление с коротким замыканием: результат возвращается без сравнения оставшихся элементов. Как только порядок можно определить, вычисление останавливается и возвращается результат. Подробнее

fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>
where Self: Sized, I: IntoIterator, F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,

🔬Это экспериментальный API, доступный только в nightly-сборках. (iter_order_by)
Лексикографически сравнивает элементы этого Iterator с элементами другого с учётом указанной функции сравнения. Подробнее
1.5.0 (const: нестабильно) ·

fn eq<I>(self, other: I) -> bool
where I: IntoIterator, Self::Item: PartialEq<<I as IntoIterator>::Item>, Self: Sized,

Определяет, равны ли элементы этого Iterator элементам другого. Подробнее

fn eq_by<I, F>(self, other: I, eq: F) -> bool
where Self: Sized, I: IntoIterator, F: FnMut(Self::Item, <I as IntoIterator>::Item) -> bool,

🔬Это экспериментальный API, доступный только в nightly. (iter_order_by)
Определяет, равны ли элементы этого Iterator элементам другого итератора согласно указанной функции сравнения на равенство. Подробнее
1.5.0 (const: нестабилен) ·

fn ne<I>(self, other: I) -> bool
where I: IntoIterator, Self::Item: PartialEq<<I as IntoIterator>::Item>, Self: Sized,

Определяет, не равны ли элементы этого Iterator элементам другого итератора. Подробнее
1.5.0 (const: нестабилен) ·

fn lt<I>(self, other: I) -> bool
where I: IntoIterator, Self::Item: PartialOrd<<I as IntoIterator>::Item>, Self: Sized,

Определяет, меньше ли элементы этого Iterator элементов другого итератора в лексикографическом порядке. Подробнее
1.5.0 (const: нестабильна) ·

fn le<I>(self, other: I) -> bool
where I: IntoIterator, Self::Item: PartialOrd<<I as IntoIterator>::Item>, Self: Sized,

Определяет, являются ли элементы этого Iterator лексикографически меньше или равными элементам другого. Подробнее
1.5.0 (const: нестабильна) ·

fn gt<I>(self, other: I) -> bool
where I: IntoIterator, Self::Item: PartialOrd<<I as IntoIterator>::Item>, Self: Sized,

Определяет, являются ли элементы этого Iterator лексикографически больше элементов другого. Подробнее
1.5.0 (const: нестабильна) ·

fn ge<I>(self, other: I) -> bool
where I: IntoIterator, Self::Item: PartialOrd<<I as IntoIterator>::Item>, Self: Sized,

Определяет, являются ли элементы этого Iterator лексикографически больше или равными элементам другого. Подробнее
1.82.0 (const: нестабилен) ·

fn is_sorted_by<F>(self, compare: F) -> bool
where Self: Sized, F: FnMut(&Self::Item, &Self::Item) -> bool,

Проверяет, отсортированы ли элементы этого итератора с использованием заданной функции сравнения. Подробнее
1.82.0 (const: нестабилен) ·

fn is_sorted_by_key<F, K>(self, f: F) -> bool
where Self: Sized, F: FnMut(Self::Item) -> K, K: PartialOrd,

Проверяет, отсортированы ли элементы этого итератора с использованием заданной функции извлечения ключа. Подробнее

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

impl<'a, T> Freeze for PermitIterator<'a, T>

impl<'a, T> RefUnwindSafe for PermitIterator<'a, T>

impl<'a, T> Send for PermitIterator<'a, T>
where T: Send,

impl<'a, T> Sync for PermitIterator<'a, T>
where T: Send,

impl<'a, T> Unpin for PermitIterator<'a, T>

impl<'a, T> UnsafeUnpin for PermitIterator<'a, T>

impl<'a, T> UnwindSafe for PermitIterator<'a, T>

Общие реализации

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<I> IntoIterator for I
where I: Iterator,

type Item = <I as Iterator>::Item

Тип перебираемых элементов.

type IntoIter = I

В какой тип итератора мы преобразуем это значение?

fn into_iter(self) -> I

Создает итератор из значения. Подробнее

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/sync/mpsc/struct.PermitIterator.html

Spec-Zone.ru

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