Введение в операторы в Rust
Оператор в выражении связывает значения знаками вроде плюса или квадратных скобок. Для встроенных типов правила уже заданы. Собственная структура или оболочка по умолчанию не участвует в таких выражениях, пока для нее явно не опишут поведение.
Оператор для своего типа пишут как выполнение стандартного трейта из модуля операций. Трейт фиксирует тип результата и метод, который компилятор связывает со знаком в исходном коде. Одна реализация на тип и один знак: отдельно описывают сложение, отдельно доступ по индексу.
Так разводят смысл данных и синтаксис обращения. Оболочка вокруг числа может складываться только с такой же оболочкой и возвращать новую оболочку, а не голое целое. Контейнер с полем вектора может отдавать элемент по номеру через скобки, не раскрывая поле наружу.
В этом разделе разберем сложение двух значений одного пользовательского типа и чтение элемента по целому индексу через скобки. В конце закрепим оба приема на коротких задачах.