Pull to refresh

Comments 8

Программа переносима (cross-platform) => можно поделиться программой, просто скопировав исполняемый файл.

Думаю, автор имел ввиду 1) кросс-компиляцию и 2) бинарник без зависимостей в рамках одной платформы:


The program is cross-platform and can be compiled on many platforms. You can ship it to other people by just copying the binary around.
Ни то ни то не верно на 100%
1. Кросс-платформенность ограничена определенным количеством известных платформ. У того же reqwest, на сколько я помню, нет биндингов на ios или на тот же redox (операционная система, разрабатываемая на расте). Следовательно, работать программа не будет.

2. На линукс reqwest требует OpenSSL, а на виндовс любой бинарник, собраный с msvc-тулчейном (рекомендуемым по умолчанию), требует установленный ms c++ runtime той же версии.

P.S. Это не критика, а уточнение, полезное для тех, у кого раст — первый системный язык программирования. В отличии от java/python/c#/etc системный язык требует куда более тщательной проверки зависимостей

Я так и не понял, почему request и response должны быть mutable

akurilov, отправляя запрос и получая ответ, мы меняем внутреннее состояние
объекта request, поэтому он должен быть изменяемым.

Извиняюсь за занудство, но мне всегда казалось что запрос должен заталкиваться в сокет без всяких изменений состояния. Вы не пробовали просто убрать "mut"? Возможно, библиотека имеет какую-то неочевидную структуру, если запрос в процессе отправки изменяется… В общем, выглядит довольно странно.

Мне тоже это кажется нелогичным. Да, без mut не сработает.

В первом случае client.get возвращает структуру RequestBuilder, в котором send требует &mut self, хотя не совсем понятно почему в состав RequestBuilder вообще входит send. В моем понимании он должен собирать структуру Request которая должна потом передаваться инстансу клиента для отправки.


Во втором случае та же ситуация, у структуры Response метод text требует &mut self, я так понимаю это как то связано с тем что поле body имеет тип async_impl::ReadableChunks<WaitBody>.


Поэтому обе переменные компилятор требует объявлять мутабельно

Для версий clap = "2.29" и reqwest = "0.8"была ошибка

failed to select a version for the requirement security-framework = "^0.1.13"

Решение - обновить версии зависимостей

[dependencies]
clap = "4.3.4"
reqwest = "0.11.18"

Sign up to leave a comment.

Articles