Гетерогенные списки в Rust и их суперсилы. Антон Михайлов

Одна из претензий к статически типизированным языкам часто состоит в том, что в них трудно манипулировать данными, которые являются просто некими наборами полей. Не смотря на то, что эта претензия ортогональна статичности системы типов, она часто справедлива на практике, поскольку большинство применяемых на практике языков программирования (включая Rust) имеют номинативную, а не структурную систему типов. Данный доклад демонстрирует, как, использовав в качестве промежуточной абстракции гетерогенные списки - вещь, обычно применяемая в функциональном программировании - можно покрыть возможности, которые могли бы предоставить отсутствующие в Rust фичи: структурная типизация и вариадические дженерики. В частности, как можно преобразовывать структуры со схожими наборами полей из одной в другую без бойлерплейта, как вынимать произвольные поля из JSON, не выписывая вручную по типу на каждую комбинацию, и как объединять вместе типы с общим обобщённым поведением так, чтобы выбирать нужный по типу требу
Back to Top