На самом деле, как вы можете догадаться, мелочи вроде ref присутствуют в коде потому, что когда-то я их добавил в попытках заставить программу компилироваться, а затем не удалил. Код в целом весьма старый на самом деле — июнь.
docopt не стал пользоваться потому что показалось, что это достаточно просто сделать самому (в отличие от разбора INI). Заодно показал, как пользоваться match.
Не могу сказать, что разделяю ваши опасения по поводу его небезопасности. Тут даже sudo на весь скрипт не запрашивается — оно используется внутри, если нужно, и скрипт об этом предупреждает. Можно передать --prefix и тогда оно вообще не понадобится, просто придётся окружение трогать тогда.
Не распарсил. Так работает только на win или не работает только на win? Особенно, в контексте использования sh.
Уже написали несколько объяснений, но я попробую ещё раз, потому что про строки любят спрашивать :)
«Михаил» — это строковый литерал, это не «объект». Его нельзя изменять, например. Это «unboxed» значение, и to_string превращает его в boxed значение на куче.
Насчёт .unwrap() — в этом-то и разница. В go ошибку можно не обрабатывать и это будет невидимо в исходном коде — так же, как и в Си. В Rust не проверенная ошибка (т.е. например Result, который не используется) вызывает предупреждение компилятора, а простейший способ её не обрабатывать — .unwrap() — помечает данное место как явно не обрабатывающее ошибки.
Представьте себе, что вам нужно в проекте на go из 10000 строк найти все места, где ошибки не обрабатываются, и оценить, сколько временеи нужно будет на приделывание правильной обработки. Вам придётся делать это, вручную вычитывая код. В Rust достаточно текстового поиска.
Команда как-то «сама» собралась в репозитории. Возможно, некоторая социальность GitHub'а помогает. Кажется, я сам изначально нашёл проект, потому что кто-то в ленте его отметил.
Никакой официальной поддержки от кого-либо у нас не было. До конца довести было непросто — поначалу было больше маленьких вливаний от многих людей, ближе к концу все почти все изменения делали одни и те же люди.
К сожалению, с переводами ситуация пока не самая лучшая. Авторы знают о нашем переводе и о нескольких других, но избегают придания им статуса «официальных». Наш перевод упомянут на странице документации оригинала, но интегрировать его к себе они пока не хотят — так сказал steveklabnik, который занимается документацией проекта.
Я пока знаю, что версии для читалок для оригинала сделал другой человек сс помощью pandoc (вместо нашего calibre). К сожалению, я не видел результат и не знаю, можно ли избежать там наших проблем с EPUB.
На самом деле, как вы можете догадаться, мелочи вроде ref присутствуют в коде потому, что когда-то я их добавил в попытках заставить программу компилироваться, а затем не удалил. Код в целом весьма старый на самом деле — июнь.
docopt не стал пользоваться потому что показалось, что это достаточно просто сделать самому (в отличие от разбора INI). Заодно показал, как пользоваться match.
INI — наверное, потому, что лично мне он более знаком и кажется менее навороченным, чем TOML.
Спасибо, поправил.
«Михаил» — это строковый литерал, это не «объект». Его нельзя изменять, например. Это «unboxed» значение, и to_string превращает его в boxed значение на куче.
Представьте себе, что вам нужно в проекте на go из 10000 строк найти все места, где ошибки не обрабатываются, и оценить, сколько временеи нужно будет на приделывание правильной обработки. Вам придётся делать это, вручную вычитывая код. В Rust достаточно текстового поиска.
Команда как-то «сама» собралась в репозитории. Возможно, некоторая социальность GitHub'а помогает. Кажется, я сам изначально нашёл проект, потому что кто-то в ленте его отметил.
Никакой официальной поддержки от кого-либо у нас не было. До конца довести было непросто — поначалу было больше маленьких вливаний от многих людей, ближе к концу все почти все изменения делали одни и те же люди.
К сожалению, с переводами ситуация пока не самая лучшая. Авторы знают о нашем переводе и о нескольких других, но избегают придания им статуса «официальных». Наш перевод упомянут на странице документации оригинала, но интегрировать его к себе они пока не хотят — так сказал steveklabnik, который занимается документацией проекта.
Я пока знаю, что версии для читалок для оригинала сделал другой человек сс помощью pandoc (вместо нашего calibre). К сожалению, я не видел результат и не знаю, можно ли избежать там наших проблем с EPUB.