IT-словарь › Программирование › Правило сироты (orphan rule)

Правило сироты (orphan rule)

Программирование Svenska → Обновлено: 2026-10-19

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

Мотив — когерентность: компилятор гарантирует, что для каждой пары «трейт — тип» во всей программе существует ровно одна реализация. Без этого правила две независимые библиотеки могли бы реализовать один и тот же трейт сериализации для Vec, и в день, когда кто-то подключит обе в один бинарник, разумного выхода не будет — ни одна из библиотек этого не исправит. Цена — нельзя добавить поведение чужим типам, а именно этого и хочется. Устоявшийся обход — тонкая обёртка, делающая тип локальным, ценой потери унаследованных методов. Правило тоньше, чем звучит: параметры типов в некоторых позициях считаются покрытыми, а ссылки и Box помечены как прозрачные, чтобы смягчить худшие неудобства.

← Назад к словарю