В Zig нашли способ заменить трейты Rust без единой библиотеки

We have traits at home

В Zig нашли способ заменить трейты Rust без единой библиотеки

Автор блога показывает, как в Zig организовать полиморфизм в духе трейтов Rust или тайпклассов Haskell, не прибегая к динамическим интерфейсам и не жертвуя производительностью. Вместо этого он предлагает конвенцию: трейт — это comptime-структура с набором функций над типом. Такой подход сохраняет статическую проверку контрактов, позволяет компилятору инлайнить вызовы и мономорфизировать код, а также избавляет от лишнего шаблонного кода по сравнению с vtable-интерфейсами.

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

Ещё за этот день

2026-10-23