> вы можете вот так костыльнуть, но точку с запятой дескать вот тут ставьте а вот тут нет. Вот это я понимаю - наколень в дизайне ЯП, в отличие от сей, с оправданием что г@вно в синтаксисе так и задумано...Это как раз одна из самых красивых вещей. Одна из тех, пр которые давно стало понятно как надо делать правильно, и вот Rust (не считая, конечно, Haskell и т.п.) наконец воплотил.
> оно может из функции несколько параметро вернуть кроме как struct'ом каким?
Туплом.
> почему имена нельзя назначать на выход? Они решили сделать все это вообще так же педальненько как в сях?
Так и на вход нельзя. Симметрия. Ну и если уж нужны имена, то может стоит придумать ещё всего одно имя и сделать именованную структуру? Ну и почему прямо как в сях? В хаскеле тоже так, например.
> У них эта тема вообще не раскрыта.
Эта тема общая для всех языков с ADT, никакой Rust специфики в ней нет.
> И чем это от ubsan в сях отличается, например?
Тем, что здесь это не UB.
> И почему & в референсе структов вон там надо а вон там можно не ставить?
Это вопрос из серии из серии "почему в русском языке тут надо запятую ставить, а тут не надо". Потому что такие правила. Чтобы обсуждать предметно, нужна альтернатива. Только лучше не получится.
> можно ли там сделать допустим тип у которого валидное значение только от 3 до 8
Можно, но не нужно, потому что без зависимых типов ценность у таких типов нулевая (если не отрицательная), ибо при первой же арифметической операции все эти ограничения теряются и они превращаются в полноразмерный тип.
> Здорово конечно но прогать какие-то более-менее реалистичные программы по этому не особо научишься.
Потому что это учебник языка, а не учебник программирования.
> требование допустим u128 ставит раком некоторые платформы
А что, длинную арифметику отменили? Атомарности Rust не требует от такого типа.