Структура Permit Iterator
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>
impl<T> Drop for PermitIterator<'_, T>
impl<T> ExactSizeIterator for PermitIterator<'_, T>
impl<T> FusedIterator for PermitIterator<'_, T>
impl<'a, T> Iterator for PermitIterator<'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 значений. Подробнее
fn count(self) -> usizewhere Self: Sized,
Потребляет итератор, подсчитывает число итераций и возвращает результат. Подробнее
fn nth(&mut self, n: usize) -> Option<Self::Item>
Возвращает элемент итератора с индексом
n. Подробнее
fn step_by(self, step: usize) -> StepBy<Self>where Self: Sized,
Создаёт итератор, начинающийся с той же позиции, но переходящий на заданное количество элементов при каждой итерации. Подробнее
fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>
Принимает два итератора и создаёт новый итератор, последовательно перебирающий оба. Подробнее
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>
🔬Это экспериментальный API, доступный только в nightly-сборке. (
iter_intersperse)
Создаёт новый итератор, который вставляет между элементами исходного итератора элемент, созданный с помощью
separator. Подробнее
fn map<B, F>(self, f: F) -> Map<Self, F>
Принимает замыкание и создаёт итератор, который вызывает это замыкание для каждого элемента. Подробнее
fn for_each<F>(self, f: F)
Вызывает замыкание для каждого элемента итератора. Подробнее
fn filter<P>(self, predicate: P) -> Filter<Self, P>
Создаёт итератор, который использует замыкание, чтобы определить, следует ли выдавать элемент. Подробнее
fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>
Создаёт итератор, который одновременно фильтрует и преобразует элементы. Подробнее
fn enumerate(self) -> Enumerate<Self>where Self: Sized,
Создаёт итератор, который выдаёт текущий номер итерации вместе со следующим значением. Подробнее
fn peekable(self) -> Peekable<Self>where Self: Sized,
fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>
Создаёт итератор, который
skip элементы на основе предиката. Подробнее
fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>
Создаёт итератор, который выдаёт элементы на основе предиката. Подробнее
fn skip(self, n: usize) -> Skip<Self>where Self: Sized,
Создаёт итератор, который пропускает первые
n элементов. Подробнее
fn take(self, n: usize) -> Take<Self>where Self: Sized,
Создаёт итератор, который выдаёт первые
n элементов или меньше, если исходный итератор заканчивается раньше. Подробнее
fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F>
fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>
Создаёт итератор, который работает как map, но разворачивает вложенную структуру. Подробнее
fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N>
🔬Это экспериментальный API, доступный только в nightly. (
iter_map_windows)
Вызывает заданную функцию
f для каждого непрерывного окна размера N в self и возвращает итератор по результатам f. Как и в случае с slice::windows(), окна при отображении также перекрываются. Подробнее
fn inspect<F>(self, f: F) -> Inspect<Self, F>
Выполняет действие с каждым элементом итератора, передавая значение дальше. Подробнее
fn collect_into<E>(self, collection: &mut E) -> &mut E
🔬Это экспериментальный API, доступный только в nightly. (
iter_collect_into)
Собирает все элементы итератора в коллекцию. Подробнее
fn partition<B, F>(self, f: F) -> (B, B)
Потребляет итератор, создавая из него две коллекции. Подробнее
fn is_partitioned<P>(self, predicate: P) -> bool
🔬Это экспериментальный API, доступный только в nightly. (
iter_is_partitioned)
Проверяет, разделены ли элементы этого итератора согласно заданному предикату так, что все элементы, для которых он возвращает
true, предшествуют элементам, для которых он возвращает false. Подробнее
fn try_for_each<F, R>(&mut self, f: F) -> R
Метод итератора, который применяет функцию, способную завершиться ошибкой, к каждому элементу итератора, останавливаясь при первой ошибке и возвращая её. Подробнее
fn fold<B, F>(self, init: B, f: F) -> B
Сворачивает каждый элемент в аккумулятор, применяя операцию, и возвращает итоговый результат. Подробнее
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
🔬Это экспериментальный API, доступный только в nightly. (
iterator_try_reduce)
Сводит элементы к одному, многократно применяя операцию сведения. Если замыкание возвращает ошибку, она немедленно передаётся вызывающей стороне. Подробнее
fn all<F>(&mut self, f: F) -> bool
Проверяет, соответствует ли каждый элемент итератора предикату. Подробнее
fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
Ищет элемент итератора, удовлетворяющий предикату. Подробнее
fn find_map<B, F>(&mut self, f: F) -> Option<B>
Применяет функцию к элементам итератора и возвращает первый результат, отличный от None. Подробнее
fn position<P>(&mut self, predicate: P) -> Option<usize>
Выполняет поиск элемента в итераторе и возвращает его индекс. Подробнее
fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
Возвращает элемент, для которого указанная функция выдаёт максимальное значение. Подробнее
fn max_by<F>(self, compare: F) -> Option<Self::Item>
Возвращает элемент, который имеет максимальное значение согласно указанной функции сравнения. Подробнее
fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
Возвращает элемент, для которого указанная функция выдаёт минимальное значение. Подробнее
fn min_by<F>(self, compare: F) -> Option<Self::Item>
Возвращает элемент, имеющий минимальное значение согласно заданной функции сравнения. Подробнее
fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
Преобразует итератор пар в пару контейнеров. Подробнее
fn copied<'a, T>(self) -> Copied<Self>
Создаёт итератор, копирующий все свои элементы. Подробнее
fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>where Self: Sized,
🔬Это экспериментальный API, доступный только в ночной версии. (
iter_array_chunks)
Возвращает итератор, выдающий за один раз по
N элементам исходного итератора. Подробнее
fn product<P>(self) -> P
Перебирает весь итератор, перемножая все его элементы. Подробнее
fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
🔬Это экспериментальный API, доступный только в ночной версии. (
iter_order_by)
Лексикографически сравнивает элементы этого
Iterator с элементами другого итератора, используя указанную функцию сравнения. Подробнее
fn partial_cmp<I>(self, other: I) -> Option<Ordering>
Лексикографически сравнивает элементы
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 с элементами другого с учётом указанной функции сравнения. Подробнее
fn eq<I>(self, other: I) -> bool
fn eq_by<I, F>(self, other: I, eq: F) -> bool
🔬Это экспериментальный API, доступный только в nightly. (
iter_order_by)
fn ne<I>(self, other: I) -> bool
fn lt<I>(self, other: I) -> bool
Определяет, меньше ли элементы этого
Iterator элементов другого итератора в лексикографическом порядке. Подробнее
fn le<I>(self, other: I) -> bool
Определяет, являются ли элементы этого
Iterator лексикографически меньше или равными элементам другого. Подробнее
fn gt<I>(self, other: I) -> bool
Определяет, являются ли элементы этого
Iterator лексикографически больше элементов другого. Подробнее
fn ge<I>(self, other: I) -> bool
Определяет, являются ли элементы этого
Iterator лексикографически больше или равными элементам другого. Подробнее
fn is_sorted_by<F>(self, compare: F) -> bool
Проверяет, отсортированы ли элементы этого итератора с использованием заданной функции сравнения. Подробнее
fn is_sorted_by_key<F, K>(self, f: F) -> bool
Проверяет, отсортированы ли элементы этого итератора с использованием заданной функции извлечения ключа. Подробнее
Реализации автоматических трейтов
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> BorrowMut<T> for Twhere T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
Изменяемо заимствует данные из принадлежащего значения. Подробнее
impl<T> Instrument for T
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
impl<I> IntoIterator for Iwhere I: Iterator,
impl<T> WithSubscriber for T
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
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