Αλεχ
я знаю
Αλεχ
это чтобы избежать неоднозначности
справедливости ради линтеры говорят константы называть КРИЧАЩИМ_СНЕЙК_КЕЙЗОМ
Cat
да даже rustc просит так делать, ворнингами плюётся
Αλεχ
так что я слепой, Да
Αλεχ
просто уже 6 часов пытаюсь собрать все зависимости
Αλεχ
чтобы заработало
Αλεχ
Тогда еще такой вопрос
Αλεχ
пишу fn send(&self, method: Method, url: &str) -> Result<ResponseFuture, Error> { let uri = format!("https://api.telegram.org/{}", url); let request = Request::post(uri).body(Body::empty())?; Ok(self.client.request(request)) } ругается --> src\telegram_client.rs:28:23 | 28 | let request = Request::post(uri).body(Body::empty())?; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::convert::From<http::error::Error>` is not implemented for `hyper::Error` | = help: the following implementations were found: <hyper::Error as std::convert::From<hyper::error::Parse>> = note: required by `std::convert::From::from`
Αλεχ
Пишу fn send(&self, method: Method, url: &str) -> Result<ResponseFuture, http::error::Error> { let uri = format!("https://api.telegram.org/{}", url); let request = Request::post(uri).body(Body::empty())?; Ok(self.client.request(request)) } ругается: --> src\telegram_client.rs:26:69 | 26 | fn send(&self, method: Method, url: &str) -> Result<ResponseFuture, http::error::Error> { | ^^^^ Use of undeclared type or module `http`
Αλεχ
че ему не нравится-то?
Αλεχ
то есть я понял, что он ошибку не сматчил
Αλεχ
но че за тип ошибки-то? Я просто хочу наружу пробросить без обработки
Αλεχ
но не знаю, какой тип написать
պլհկ
F A I L U R E
Αλεχ
да я хочу точный тип желательно
Αλεχ
он же тут есть
պլհկ
ну заимпорть http
Αλεχ
так я полный путь же использую
Αλεχ
что еще импортировать?
պլհկ
::
Αλεχ
а, видимо надо extern crate http записать
Αλεχ
норм
Αλεχ
::
error[E0603]: module `error` is private --> src\telegram_client.rs:25:73 | 25 | fn send(&self, method: Method, url: &str) -> Result<ResponseFuture, ::http::error::Error> { |
Αλεχ
збс
Cat
hyper::Error?
Cat
посмотри в prelude
Αλεχ
hyper::Error?
первый вариант, не работает
պլհկ
https://docs.rs/http/0.1.6/http/struct.Error.html
Αλεχ
а, реимпорт заюзать
Αλεχ
спасибо
Αλεχ
я могу в build.rs узнать имя выходной папки?
Αλεχ
потому что щас я ищу по имени исполняемого файла, что работает только если экзешник уже там есть
Αλεχ
а в первой компиляции или после очисткий - йух
պլհկ
CARGO_OUT или что-то такое
պլհկ
https://doc.rust-lang.org/cargo/reference/environment-variables.html
Cat
а, действительно OUT_DIR, думал наврал OUT_DIR - If the package has a build script, this is set to the folder where the build script should place its output. See below for more information.
Αλεχ
error: environment variable `OUT_DIR` not defined --> build.rs:9:27 | 9 | let target_dir_path = env!("OUT_DIR"); | ^^^^^^^^^^^^^^^
Cat
а, дефолтная вроде CARGO_TARGET_DIR
Cat
ну короче по ссылке в спеке есть
Αλεχ
не, не то
Αλεχ
положил в target\debug\build\boyan_detector_bot-4c80258a468227d1\out
Αλεχ
но уже ближе, спасибо
Berkus
а тебе в рантайме надо
Berkus
@notplhk тебе правилно сказал
Berkus
https://github.com/metta-systems/vesper/blob/rust-boot-experiments/build.rs#L12 вот работающий пример
Cat
в спеке по ссылке тоже есть пример
Αλεχ
Αλεχ
но он промежуточную папку показывает
Αλεχ
с хэшем которая
Berkus
ну куда ты положил тоже с хэшем же
Berkus
вот эта
Berkus
положил в target\debug\build\boyan_detector_bot-4c80258a468227d1\out
Berkus
ну то есть для целей конкретно ЭТОЙ сборки это правильный out dir
Vladimir
+1, нехер в src класть. Но если надо то там по идее можно рут Дир получить, и в срц класть
Cat
надо просто сделать $RUSTPATH и класть всё относиельно $RUSTPATH/bin и никаких проблем
Vladimir
Просто класть в $HOME и не выебываться
Berkus
а, дефолтная вроде CARGO_TARGET_DIR
Berkus
а, это для карго
Berkus
но тем не менее, если не надо как-то особо бандлить - то лучше класть в OUT_DIR, бороться с билдсистемой чревато
Антон
но сейчас даже основу понять не могу
Изучи parser combinators в Haskell, там синтаксического шума меньше
Антон
Новую версию Rust-а подвезли: https://blog.rust-lang.org/2018/06/21/Rust-1.27.html
Evgεny
Alexander
Я вообще не понимаю зачем в расте что-то придумывают с синтаксисом, когда очевидно надо было брать устоявшийся хаскельный, ну без do может.
Alexander
Похоже на желание просто пройтись по граблям самостоятельно.
Sergey
взяли бы хаскельный, на расте писало бы в туеву хучу раз меньше людей
պլհկ
Я вообще не понимаю зачем в расте что-то придумывают с синтаксисом, когда очевидно надо было брать устоявшийся питоновый
Cat
у синтаксиса хаскелла был фатальный недостаток
Sergey
Похоже на желание просто пройтись по граблям самостоятельно.
взяли тот синтаксис, который привычен большинству
պլհկ
Я вообще не понимаю зачем в расте что-то придумывают с синтаксисом, когда очевидно надо было брать устоявшийся плюсовый
Cat
вот это тема