Модуль convert

Содержит Трейты для преобразований между типами.

Трейты в этом модуле предоставляют способ преобразования из одного типа в другой. Каждый трейт служит своей цели:

  • Реализуйте трейт AsRef для дешёвых преобразований ссылка-в-ссылку
  • Реализуйте трейт AsMut для дешёвых преобразований изменяемая-сссылка-в-изменяемую-ссылку
  • Реализуйте трейт From для потребляющих преобразований значение-в-значение
  • Реализуйте трейт Into для потребляющих преобразований значение-в-значение в типы за пределами текущего крейта
  • Трейты TryFrom и TryInto ведут себя как From и Into, но должны реализовываться, когда преобразование может завершиться неудачей.

Трейты в этом модуле часто используются как трейт-границы для обобщённых функций, чтобы поддерживать аргументы нескольких типов. Смотрите документацию каждого трейта для примеров.

Как автор библиотеки, вы всегда должны предпочитать реализацию From<T> или TryFrom<T> вместо Into<U> или TryInto<U>, поскольку From и TryFrom предоставляют большую гибкость и предлагают эквивалентные реализации Into или TryInto бесплатно, благодаря обобщённой реализации в стандартной библиотеке. При работе с версиями до Rust 1.41 может быть необходимо реализовывать Into или TryInto напрямую при преобразовании в тип за пределами текущего крейта.

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

  • AsRef и AsMut автоматически разыменовываются, если внутренний тип является ссылкой (но не для всех типов, которые можно разыменовать вообще)
  • From<U> for T подразумевает Into<T> for U
  • TryFrom<U> for T подразумевает TryInto<T> for U
  • From и Into рефлексивны, что означает, что все типы могут преобразовываться в самих себя и из самих себя

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

Enums

Infallible Тип ошибки для ошибок, которые никогда не могут произойти.

Traits

AsMut Используется для дешёвого преобразования изменяемая-ссылка-в-изменяемую-ссылку.

AsRef Используется для дешёвого преобразования ссылка-в-ссылку.

From Используется для преобразований значение-в-значение с потреблением входного значения. Является обратным к Into.

Into Преобразование значение-в-значение, которое потребляет входное значение. Противоположность From.

TryFrom Простые и безопасные преобразования типов, которые могут завершаться неудачей контролируемым образом в некоторых обстоятельствах. Является обратным к TryInto.

TryInto Попытка преобразования, которая потребляет self и может быть как дорогой, так и дешёвой.

FloatToInt (Experimental) Вспомогательный трейт для inherent-методов f32 и f64, таких как to_int_unchecked. Обычно не требуется использовать напрямую.

Функции

identity Функция тождества.