Модуль 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 UTryFrom<U> for TподразумеваетTryInto<T> for UFromиIntoрефлексивны, что означает, что все типы могут преобразовываться в самих себя и из самих себя
Смотрите примеры использования в каждом трейте.
Enums
Infallible
Тип ошибки для ошибок, которые никогда не могут произойти.
Traits
AsMut
Используется для дешёвого преобразования изменяемая-ссылка-в-изменяемую-ссылку.
AsRef
Используется для дешёвого преобразования ссылка-в-ссылку.
From
Используется для преобразований значение-в-значение с потреблением входного значения. Является обратным к Into.
Into
Преобразование значение-в-значение, которое потребляет входное значение. Противоположность From.
TryFrom
Простые и безопасные преобразования типов, которые могут завершаться неудачей контролируемым образом в некоторых обстоятельствах. Является обратным к TryInto.
TryInto
Попытка преобразования, которая потребляет self и может быть как дорогой, так и дешёвой.
FloatToInt (Experimental)
Вспомогательный трейт для inherent-методов f32 и f64, таких как to_int_unchecked. Обычно не требуется использовать напрямую.
Функции
identity
Функция тождества.