> А что я должен должен сказать по коду? Куча синтаксического шума и никаких гарантий корректности.Что должен? Должен проверить код.
Что можешь? А ничего ты не можешь, ты же не умеешь в раст. Мог бы скачать репу и прогнать тесты.
Тесты оно проходит
test sync::peterson::tests::race_conditions ... ok
test sync::peterson::tests::sequential_works ... ok
test sync::peterson::tests::mutual_exclusion ... ok
test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 13.88s
> Так вот возвращаемся к моему основному вопросу. КАК Rust гарантирует корректность этого кода и почему?
Я тебе писал уже кучу раз в этой теме - ОТКРОЙ ДОКУ и прочитай что именно гарантирует раст.
Все что гарантируется, гарантируется автоматически.
Все что не гарантируется - доказываешь на бумажке, покрываешь тестами.
> Или умный программист ВРУЧНУЮ проверил все инварианты
и написал корректный код на безопасном языке Rust. Программист молодец!
> В Zig минимум синтаксического шума, и только по делу.
А откуда ты это знаешь, если на твой код равняться не стоит? Вдруг ты что-то забыл?
В раст тоже все по делу. Вот ты написал все в кучу внутри структуры PetersonMutex, тут разделил на отдельные имплементации, чтобы код был более читабельным (но только разумеется для того, кто понимает что там написано)
> Это черновик. ... я написал некорректный код ...
Черновик или нерабочий код? Если мы оба за точность терминологии, то это явно момент, который неплохо бы прояснить)))
> Но я это знаю, что ошибка, знаю какая и как исправить. А как в этом поможет Rust?
Как поможет раст исправить ошибку в Зиг коде? Даже не знаю что ответить...