Структура Chars

#![allow(unused)]
fn main() {
pub struct Chars<'a> { /* приватные поля */ }
}

Итератор по символам (char) среза строки.

Эта структура создается методом chars для типа str. Подробнее см. в его документации.

Методы

impl<'a> Chars<'a>

as_str (с версии 1.4.0)

#![allow(unused)]
fn main() {
pub fn as_str(&self) -> &'a str
}

Возвращает представление базовых данных как под-срез исходных данных.

Имеет то же время жизни, что и исходный срез, поэтому итератор можно продолжать использовать, пока этот срез существует.

Примеры

#![allow(unused)]
fn main() {
let mut chars = "abc".chars();

assert_eq!(chars.as_str(), "abc");
chars.next();
assert_eq!(chars.as_str(), "bc");
chars.next();
chars.next();
assert_eq!(chars.as_str(), "");
}

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

impl<'a> Clone for Chars<'a>

clone

#![allow(unused)]
fn main() {
fn clone(&self) -> Chars<'a> ⓘ
}

Возвращает копию значения.

clone_from

#![allow(unused)]
fn main() {
fn clone_from(&mut self, source: &Self)
}

Выполняет копирующее присваивание из source.

impl Debug for Chars<'_> (с версии 1.38.0)

fmt

#![allow(unused)]
fn main() {
fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>
}

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

impl<'a> DoubleEndedIterator for Chars<'a>

next_back

#![allow(unused)]
fn main() {
fn next_back(&mut self) -> Option<char>
}

Удаляет и возвращает элемент с конца итератора.

advance_back_by

#![allow(unused)]
fn main() {
fn advance_back_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
}

🔬 Это экспериментальное API, доступное только в ночных сборках. (iter_advance_by #77404) Перемещает итератор с конца на n элементов.

nth_back (с версии 1.37.0)

#![allow(unused)]
fn main() {
fn nth_back(&mut self, n: usize) -> Option<Self::Item>
}

Возвращает n-й элемент с конца итератора.

try_rfold (с версии 1.27.0)

#![allow(unused)]
fn main() {
fn try_rfold<B, F, R>(&mut self, init: B, f: F) -> R
where
    Self: Sized,
    F: FnMut(B, Self::Item) -> R,
    R: Try<Output = B>,
}

Обратная версия Iterator::try_fold(): берет элементы, начиная с конца итератора.

rfold (с версии 1.27.0)

#![allow(unused)]
fn main() {
fn rfold<B, F>(self, init: B, f: F) -> B
where
    Self: Sized,
    F: FnMut(B, Self::Item) -> B,
}

Метод итератора, который сводит элементы итератора к единственному конечному значению, начиная с конца.

rfind (с версии 1.27.0)

#![allow(unused)]
fn main() {
fn rfind<P>(&mut self, predicate: P) -> Option<Self::Item>
where
    Self: Sized,
    P: FnMut(&Self::Item) -> bool,
}

Ищет элемент итератора с конца, удовлетворяющий предикату.

impl<'a> Iterator for Chars<'a>

type Item

#![allow(unused)]
fn main() {
type Item = char
}

Тип элементов, по которым выполняется итерация.

next

#![allow(unused)]
fn main() {
fn next(&mut self) -> Option<char>
}

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

count

#![allow(unused)]
fn main() {
fn count(self) -> usize
}

Потребляет итератор, подсчитывая количество итераций и возвращая его.

advance_by

#![allow(unused)]
fn main() {
fn advance_by(&mut self, remainder: usize) -> Result<(), NonZero<usize>>
}

🔬 Это экспериментальное API, доступное только в ночных сборках. (iter_advance_by #77404) Перемещает итератор на n элементов.

size_hint

#![allow(unused)]
fn main() {
fn size_hint(&self) -> (usize, Option<usize>)
}

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

last

#![allow(unused)]
fn main() {
fn last(self) -> Option<char>
}

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

next_chunk

#![allow(unused)]
fn main() {
fn next_chunk<const N: usize>(&mut self) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>
where
    Self: Sized,
}

🔬 Это экспериментальное API, доступное только в ночных сборках. (iter_next_chunk #98326) Перемещает итератор и возвращает массив, содержащий следующие N значений.

nth (с версии 1.0.0)

#![allow(unused)]
fn main() {
fn nth(&mut self, n: usize) -> Option<Self::Item>
}

Возвращает n-й элемент итератора.

step_by (с версии 1.28.0)

#![allow(unused)]
fn main() {
fn step_by(self, step: usize) -> StepBy<Self> ⓘ
where
    Self: Sized,
}

Создает итератор, начинающийся с той же точки, но с шагом заданного размера на каждой итерации.

chain (с версии 1.0.0)

#![allow(unused)]
fn main() {
fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter> ⓘ
where
    Self: Sized,
    U: IntoIterator<Item = Self::Item>,
}

Берет два итератора и создает новый итератор, проходящий по обоим последовательно.

zip (с версии 1.0.0)

#![allow(unused)]
fn main() {
fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter> ⓘ
where
    Self: Sized,
    U: IntoIterator,
}

"Объединяет" два итератора в один итератор пар.

intersperse

#![allow(unused)]
fn main() {
fn intersperse(self, separator: Self::Item) -> Intersperse<Self> ⓘ
where
    Self: Sized,
    Self::Item: Clone,
}

🔬 Это экспериментальное API, доступное только в ночных сборках. (iter_intersperse #79524) Создает новый итератор, который помещает копию separator между соседними элементами исходного итератора.

intersperse_with

#![allow(unused)]
fn main() {
fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G> ⓘ
where
    Self: Sized,
    G: FnMut() -> Self::Item,
}

🔬 Это экспериментальное API, доступное только в ночных сборках. (iter_intersperse #79524) Создает новый итератор, который помещает элемент, сгенерированный separator, между соседними элементами исходного итератора.

map (с версии 1.0.0)

#![allow(unused)]
fn main() {
fn map<B, F>(self, f: F) -> Map<Self, F> ⓘ
where
    Self: Sized,
    F: FnMut(Self::Item) -> B,
}

Берет замыкание и создает итератор, который вызывает это замыкание для каждого элемента.

for_each (с версии 1.21.0)

#![allow(unused)]
fn main() {
fn for_each<F>(self, f: F)
where
    Self: Sized,
    F: FnMut(Self::Item),
}

Вызывает замыкание для каждого элемента итератора.

filter (с версии 1.0.0)

#![allow(unused)]
fn main() {
fn filter<P>(self, predicate: P) -> Filter<Self, P> ⓘ
where
    Self: Sized,
    P: FnMut(&Self::Item) -> bool,
}

Создает итератор, который использует замыкание для определения, должен ли элемент быть выдан.

filter_map (с версии 1.0.0)

#![allow(unused)]
fn main() {
fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F> ⓘ
where
    Self: Sized,
    F: FnMut(Self::Item) -> Option<B>,
}

Создает итератор, который одновременно фильтрует и преобразует.

enumerate (с версии 1.0.0)

#![allow(unused)]
fn main() {
fn enumerate(self) -> Enumerate<Self> ⓘ
where
    Self: Sized,
}

Создает итератор, который дает текущий счетчик итераций, а также следующее значение.

peekable (с версии 1.0.0)

#![allow(unused)]
fn main() {
fn peekable(self) -> Peekable<Self> ⓘ
where
    Self: Sized,
}

Создает итератор, который может использовать методы peek и peek_mut для просмотра следующего элемента итератора без его потребления.

skip_while (с версии 1.0.0)

#![allow(unused)]
fn main() {
fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P> ⓘ
where
    Self: Sized,
    P: FnMut(&Self::Item) -> bool,
}

Создает итератор, который пропускает элементы на основе предиката.

take_while (с версии 1.0.0)

#![allow(unused)]
fn main() {
fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P> ⓘ
where
    Self: Sized,
    P: FnMut(&Self::Item) -> bool,
}

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

map_while (с версии 1.57.0)

#![allow(unused)]
fn main() {
fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P> ⓘ
where
    Self: Sized,
    P: FnMut(Self::Item) -> Option<B>,
}

Создает итератор, который одновременно выдает элементы на основе предиката и преобразует их.

skip (с версии 1.0.0)

#![allow(unused)]
fn main() {
fn skip(self, n: usize) -> Skip<Self> ⓘ
where
    Self: Sized,
}

Создает итератор, который пропускает первые n элементов.

take (с версии 1.0.0)

#![allow(unused)]
fn main() {
fn take(self, n: usize) -> Take<Self> ⓘ
where
    Self: Sized,
}

Создает итератор, который выдает первые n элементов или меньше, если базовый итератор заканчивается раньше.

scan (с версии 1.0.0)

#![allow(unused)]
fn main() {
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, создает новый итератор.

flat_map (с версии 1.0.0)

#![allow(unused)]
fn main() {
fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F> ⓘ
where
    Self: Sized,
    U: IntoIterator,
    F: FnMut(Self::Item) -> U,
}

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

flatten (с версии 1.29.0)

#![allow(unused)]
fn main() {
fn flatten(self) -> Flatten<Self> ⓘ
where
    Self: Sized,
    Self::Item: IntoIterator,
}

Создает итератор, который сглаживает вложенную структуру.

map_windows

#![allow(unused)]
fn main() {
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, доступное только в ночных сборках. (iter_map_windows #87155) Вызывает заданную функцию f для каждого непрерывного окна размера N над self и возвращает итератор по результатам f. Как и в slice::windows(), окна при отображении также перекрываются.

fuse (с версии 1.0.0)

#![allow(unused)]
fn main() {
fn fuse(self) -> Fuse<Self> ⓘ
where
    Self: Sized,
}

Создает итератор, который завершается после первого None.

inspect (с версии 1.0.0)

#![allow(unused)]
fn main() {
fn inspect<F>(self, f: F) -> Inspect<Self, F> ⓘ
where
    Self: Sized,
    F: FnMut(&Self::Item),
}

Выполняет действие с каждым элементом итератора, передавая значение дальше.

by_ref (с версии 1.0.0)

#![allow(unused)]
fn main() {
fn by_ref(&mut self) -> &mut Self
where
    Self: Sized,
}

Создает адаптер "по ссылке" для данного экземпляра Iterator.

collect (с версии 1.0.0)

#![allow(unused)]
fn main() {
fn collect<B>(self) -> B
where
    B: FromIterator<Self::Item>,
    Self: Sized,
}

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

try_collect

#![allow(unused)]
fn main() {
fn try_collect<B>(&mut self) -> <<Self::Item as Try>::Residual as Residual<B>>::TryType
where
    Self: Sized,
    Self::Item: Try,
    <Self::Item as Try>::Residual: Residual<B>,
    B: FromIterator<<Self::Item as Try>::Output>,
}

🔬 Это экспериментальное API, доступное только в ночных сборках. (iterator_try_collect #94047) Преобразует итератор в коллекцию с обработкой ошибок, прерываясь при первой неудаче.

collect_into

#![allow(unused)]
fn main() {
fn collect_into<E>(self, collection: &mut E) -> &mut E
where
    E: Extend<Self::Item>,
    Self: Sized,
}

🔬 Это экспериментальное API, доступное только в ночных сборках. (iter_collect_into #94780) Собирает все элементы из итератора в коллекцию.

partition (с версии 1.0.0)

#![allow(unused)]
fn main() {
fn partition<B, F>(self, f: F) -> (B, B)
where
    Self: Sized,
    B: Default + Extend<Self::Item>,
    F: FnMut(&Self::Item) -> bool,
}

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

partition_in_place

#![allow(unused)]
fn main() {
fn partition_in_place<'a, T, P>(self, predicate: P) -> usize
where
    T: 'a,
    Self: Sized + DoubleEndedIterator<Item = &'a mut T>,
    P: FnMut(&T) -> bool,
}

🔬 Это экспериментальное API, доступное только в ночных сборках. (iter_partition_in_place #62543) Переупорядочивает элементы этого итератора на месте в соответствии с заданным предикатом так, чтобы все элементы, возвращающие true, предшествовали всем элементам, возвращающим false. Возвращает количество найденных элементов true.

is_partitioned

#![allow(unused)]
fn main() {
fn is_partitioned<P>(self, predicate: P) -> bool
where
    Self: Sized,
    P: FnMut(Self::Item) -> bool,
}

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

try_fold (с версии 1.27.0)

#![allow(unused)]
fn main() {
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>,
}

Метод итератора, который применяет функцию, пока она возвращает успех, производя единственное конечное значение.

try_for_each (с версии 1.27.0)

#![allow(unused)]
fn main() {
fn try_for_each<F, R>(&mut self, f: F) -> R
where
    Self: Sized,
    F: FnMut(Self::Item) -> R,
    R: Try<Output = ()>,
}

Метод итератора, который применяет функцию с возможностью ошибки к каждому элементу итератора, останавливаясь при первой ошибке и возвращая эту ошибку.

fold (с версии 1.0.0)

#![allow(unused)]
fn main() {
fn fold<B, F>(self, init: B, f: F) -> B
where
    Self: Sized,
    F: FnMut(B, Self::Item) -> B,
}

Складывает каждый элемент в аккумулятор путем применения операции, возвращая конечный результат.

reduce (с версии 1.51.0)

#![allow(unused)]
fn main() {
fn reduce<F>(self, f: F) -> Option<Self::Item>
where
    Self: Sized,
    F: FnMut(Self::Item, Self::Item) -> Self::Item,
}

Сводит элементы к одному путем многократного применения операции сокращения.

try_reduce

#![allow(unused)]
fn main() {
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, доступное только в ночных сборках. (iterator_try_reduce #87053) Сводит элементы к одному путем многократного применения операции сокращения. Если замыкание возвращает ошибку, ошибка немедленно передается обратно вызывающей стороне.

all (с версии 1.0.0)

#![allow(unused)]
fn main() {
fn all<F>(&mut self, f: F) -> bool
where
    Self: Sized,
    F: FnMut(Self::Item) -> bool,
}

Проверяет, соответствует ли каждый элемент итератора предикату.

any (с версии 1.0.0)

#![allow(unused)]
fn main() {
fn any<F>(&mut self, f: F) -> bool
where
    Self: Sized,
    F: FnMut(Self::Item) -> bool,
}

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

find (с версии 1.0.0)

#![allow(unused)]
fn main() {
fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
where
    Self: Sized,
    P: FnMut(&Self::Item) -> bool,
}

Ищет элемент итератора, удовлетворяющий предикату.

find_map (с версии 1.30.0)

#![allow(unused)]
fn main() {
fn find_map<B, F>(&mut self, f: F) -> Option<B>
where
    Self: Sized,
    F: FnMut(Self::Item) -> Option<B>,
}

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

try_find

#![allow(unused)]
fn main() {
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, доступное только в ночных сборках. (try_find #63178) Применяет функцию к элементам итератора и возвращает первый истинный результат или первую ошибку.

position (с версии 1.0.0)

#![allow(unused)]
fn main() {
fn position<P>(&mut self, predicate: P) -> Option<usize>
where
    Self: Sized,
    P: FnMut(Self::Item) -> bool,
}

Ищет элемент в итераторе, возвращая его индекс.

rposition (с версии 1.0.0)

#![allow(unused)]
fn main() {
fn rposition<P>(&mut self, predicate: P) -> Option<usize>
where
    P: FnMut(Self::Item) -> bool,
    Self: Sized + ExactSizeIterator + DoubleEndedIterator,
}

Ищет элемент в итераторе справа, возвращая его индекс.

max (с версии 1.0.0)

#![allow(unused)]
fn main() {
fn max(self) -> Option<Self::Item>
where
    Self: Sized,
    Self::Item: Ord,
}

Возвращает максимальный элемент итератора.

min (с версии 1.0.0)

#![allow(unused)]
fn main() {
fn min(self) -> Option<Self::Item>
where
    Self: Sized,
    Self::Item: Ord,
}

Возвращает минимальный элемент итератора.

max_by_key (с версии 1.6.0)

#![allow(unused)]
fn main() {
fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
where
    B: Ord,
    Self: Sized,
    F: FnMut(&Self::Item) -> B,
}

Возвращает элемент, который дает максимальное значение от указанной функции.

max_by (с версии 1.15.0)

#![allow(unused)]
fn main() {
fn max_by<F>(self, compare: F) -> Option<Self::Item>
where
    Self: Sized,
    F: FnMut(&Self::Item, &Self::Item) -> Ordering,
}

Возвращает элемент, который дает максимальное значение относительно указанной функции сравнения.

min_by_key (с версии 1.6.0)

#![allow(unused)]
fn main() {
fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
where
    B: Ord,
    Self: Sized,
    F: FnMut(&Self::Item) -> B,
}

Возвращает элемент, который дает минимальное значение от указанной функции.

min_by (с версии 1.15.0)

#![allow(unused)]
fn main() {
fn min_by<F>(self, compare: F) -> Option<Self::Item>
where
    Self: Sized,
    F: FnMut(&Self::Item, &Self::Item) -> Ordering,
}

Возвращает элемент, который дает минимальное значение относительно указанной функции сравнения.

rev (с версии 1.0.0)

#![allow(unused)]
fn main() {
fn rev(self) -> Rev<Self> ⓘ
where
    Self: Sized + DoubleEndedIterator,
}

Изменяет направление итератора на противоположное.

unzip (с версии 1.0.0)

#![allow(unused)]
fn main() {
fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
where
    FromA: Default + Extend<A>,
    FromB: Default + Extend<B>,
    Self: Sized + Iterator<Item = (A, B)>,
}

Преобразует итератор пар в пару контейнеров.

copied (с версии 1.36.0)

#![allow(unused)]
fn main() {
fn copied<'a, T>(self) -> Copied<Self> ⓘ
where
    T: Copy + 'a,
    Self: Sized + Iterator<Item = &'a T>,
}

Создает итератор, который копирует все свои элементы.

cloned (с версии 1.0.0)

#![allow(unused)]
fn main() {
fn cloned<'a, T>(self) -> Cloned<Self> ⓘ
where
    T: Clone + 'a,
    Self: Sized + Iterator<Item = &'a T>,
}

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

cycle (с версии 1.0.0)

#![allow(unused)]
fn main() {
fn cycle(self) -> Cycle<Self> ⓘ
where
    Self: Sized + Clone,
}

Бесконечно повторяет итератор.

array_chunks

#![allow(unused)]
fn main() {
fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N> ⓘ
where
    Self: Sized,
}

🔬 Это экспериментальное API, доступное только в ночных сборках. (iter_array_chunks #100450) Возвращает итератор по N элементов итератора за раз.

sum (с версии 1.11.0)

#![allow(unused)]
fn main() {
fn sum<S>(self) -> S
where
    Self: Sized,
    S: Sum<Self::Item>,
}

Суммирует элементы итератора.

product (с версии 1.11.0)

#![allow(unused)]
fn main() {
fn product<P>(self) -> P
where
    Self: Sized,
    P: Product<Self::Item>,
}

Итерируется по всему итератору, перемножая все элементы.

cmp (с версии 1.5.0)

#![allow(unused)]
fn main() {
fn cmp<I>(self, other: I) -> Ordering
where
    I: IntoIterator<Item = Self::Item>,
    Self::Item: Ord,
    Self: Sized,
}

Лексикографически сравнивает элементы этого Iterator с элементами другого.

cmp_by

#![allow(unused)]
fn main() {
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 #64295) Лексикографически сравнивает элементы этого Iterator с элементами другого относительно указанной функции сравнения.

partial_cmp (с версии 1.5.0)

#![allow(unused)]
fn main() {
fn partial_cmp<I>(self, other: I) -> Option<Ordering>
where
    I: IntoIterator,
    Self::Item: PartialOrd<<I as IntoIterator>::Item>,
    Self: Sized,
}

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

partial_cmp_by

#![allow(unused)]
fn main() {
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, доступное только в ночных сборках. (iter_order_by #64295) Лексикографически сравнивает элементы этого Iterator с элементами другого относительно указанной функции сравнения.

eq (с версии 1.5.0)

#![allow(unused)]
fn main() {
fn eq<I>(self, other: I) -> bool
where
    I: IntoIterator,
    Self::Item: PartialEq<<I as IntoIterator>::Item>,
    Self: Sized,
}

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

eq_by

#![allow(unused)]
fn main() {
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, доступное только в ночных сборках. (iter_order_by #64295) Определяет, равны ли элементы этого Iterator элементам другого относительно указанной функции равенства.

ne (с версии 1.5.0)

#![allow(unused)]
fn main() {
fn ne<I>(self, other: I) -> bool
where
    I: IntoIterator,
    Self::Item: PartialEq<<I as IntoIterator>::Item>,
    Self: Sized,
}

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

lt (с версии 1.5.0)

#![allow(unused)]
fn main() {
fn lt<I>(self, other: I) -> bool
where
    I: IntoIterator,
    Self::Item: PartialOrd<<I as IntoIterator>::Item>,
    Self: Sized,
}

Определяет, лексикографически ли меньше элементы этого Iterator, чем элементы другого.

le (с версии 1.5.0)

#![allow(unused)]
fn main() {
fn le<I>(self, other: I) -> bool
where
    I: IntoIterator,
    Self::Item: PartialOrd<<I as IntoIterator>::Item>,
    Self: Sized,
}

Определяет, лексикографически ли меньше или равны элементы этого Iterator элементам другого.

gt (с версии 1.5.0)

#![allow(unused)]
fn main() {
fn gt<I>(self, other: I) -> bool
where
    I: IntoIterator,
    Self::Item: PartialOrd<<I as IntoIterator>::Item>,
    Self: Sized,
}

Определяет, лексикографически ли больше элементы этого Iterator, чем элементы другого.

ge (с версии 1.5.0)

#![allow(unused)]
fn main() {
fn ge<I>(self, other: I) -> bool
where
    I: IntoIterator,
    Self::Item: PartialOrd<<I as IntoIterator>::Item>,
    Self: Sized,
}

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

is_sorted (с версии 1.82.0)

#![allow(unused)]
fn main() {
fn is_sorted(self) -> bool
where
    Self: Sized,
    Self::Item: PartialOrd,
}

Проверяет, отсортированы ли элементы этого итератора.

is_sorted_by (с версии 1.82.0)

#![allow(unused)]
fn main() {
fn is_sorted_by<F>(self, compare: F) -> bool
where
    Self: Sized,
    F: FnMut(&Self::Item, &Self::Item) -> bool,
}

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

is_sorted_by_key (с версии 1.82.0)

#![allow(unused)]
fn main() {
fn is_sorted_by_key<F, K>(self, f: F) -> bool
where
    Self: Sized,
    F: FnMut(Self::Item) -> K,
    K: PartialOrd,
}

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

impl FusedIterator for Chars<'_> (с версии 1.26.0)

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

#![allow(unused)]
fn main() {
impl<'a> Freeze for Chars<'a>
impl<'a> RefUnwindSafe for Chars<'a>
impl<'a> Send for Chars<'a>
impl<'a> Sync for Chars<'a>
impl<'a> Unpin for Chars<'a>
impl<'a> UnwindSafe for Chars<'a>
}

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

#![allow(unused)]
fn main() {
impl<T> Any for T
where
    T: 'static + ?Sized,
}
#![allow(unused)]
fn main() {
impl<T> Borrow<T> for T
where
    T: ?Sized,
}
#![allow(unused)]
fn main() {
impl<T> BorrowMut<T> for T
where
    T: ?Sized,
}
#![allow(unused)]
fn main() {
impl<T> CloneToUninit for T
where
    T: Clone,
}
#![allow(unused)]
fn main() {
impl<T> From<T> for T
}
#![allow(unused)]
fn main() {
impl<T, U> Into<U> for T
where
    U: From<T>,
}
#![allow(unused)]
fn main() {
impl<I> IntoIterator for I
where
    I: Iterator,
}
#![allow(unused)]
fn main() {
impl<T> ToOwned for T
where
    T: Clone,
}
#![allow(unused)]
fn main() {
impl<T, U> TryFrom<U> for T
where
    U: Into<T>,
}
#![allow(unused)]
fn main() {
impl<T, U> TryInto<U> for T
where
    U: TryFrom<T>,
}