Size: a a a

Rust — русскоговорящее сообществo

2020 April 19

H

Heorhi in Rust — русскоговорящее сообществo
чорт... как в ллвм флаги передать?
источник

IL

Ilya Lakhin in Rust — русскоговорящее сообществo
Mikail Bagishov
Ты делаешь канал с булом, изначально кладешь в него false.
Разблокировка: sender.broadcast(true).
Заблокироваться:
while *rx.borrow()==false {
  rx.recv().await
}
Мда, идея хорошая. Спасибо!
источник

T

Tema in Rust — русскоговорящее сообществo
Эрик
Вот смотри, рассказываю на примере: представь, лежишь ты на спине, собираешь слюну во рту, копишь, давишься. Но пока ты не плюнешь (смачно, со звуком, мощно!), эта слюна не превратится в плевок. Так же и с Future, пока ты её не .await, это просто футура, а не текст, цифра или что-нибудь ещё.
получилось! Спасибо. Ну, всмысле показать боди в консоль а не плюнуть
источник

Э

Эрик in Rust — русскоговорящее сообществo
Tema
получилось! Спасибо. Ну, всмысле показать боди в консоль а не плюнуть
Просто смотри на тип этой срани. Если сверху Future<>, то чтобы получить результат, её надо .await. Если Result<>, то надо match, unwrap или послать в какую-то функцию, которая принимает Result. С Option та же фигня, что с Result.
источник

T

Tema in Rust — русскоговорящее сообществo
Эрик
Просто смотри на тип этой срани. Если сверху Future<>, то чтобы получить результат, её надо .await. Если Result<>, то надо match, unwrap или послать в какую-то функцию, которая принимает Result. С Option та же фигня, что с Result.
понял!
источник

r

red75prime in Rust — русскоговорящее сообществo
По-моему, чаще нужно Result возвращать с помощью ?
источник

Э

Эрик in Rust — русскоговорящее сообществo
red75prime
По-моему, чаще нужно Result возвращать с помощью ?
Обычно io::Result<> или какой-нибудь другой генерик резалт.
источник

Э

Эрик in Rust — русскоговорящее сообществo
Несовпадающие типы вроде так не возвращаются.
источник

r

red75prime in Rust — русскоговорящее сообществo
Эрик
Несовпадающие типы вроде так не возвращаются.
Возвращаются, если есть From
источник

МЛ

Михаил Лёсин in Rust — русскоговорящее сообществo
Нубский вопрос, почему так и что я делаю не так:
У меня проект который делает бинарник, в нём я хочу организовать либу, которую потом хочу в нем же тестить.
Если я делаю так что у меня в src лежат рядом main.rs и lib.rs, то всё работает, я могу сослаться из test/test.rs на мой крейт, который называется, допустим, qqq.
Но если я lib.rs переделываю в lib/mod.rs, всё к чертям ломается, и в test/test.rs команда external crate qqq говорит нет такого крейта.
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Михаил Лёсин
Нубский вопрос, почему так и что я делаю не так:
У меня проект который делает бинарник, в нём я хочу организовать либу, которую потом хочу в нем же тестить.
Если я делаю так что у меня в src лежат рядом main.rs и lib.rs, то всё работает, я могу сослаться из test/test.rs на мой крейт, который называется, допустим, qqq.
Но если я lib.rs переделываю в lib/mod.rs, всё к чертям ломается, и в test/test.rs команда external crate qqq говорит нет такого крейта.
Корневой файл крейта-библиотеки должен называться именно lib.rs
источник

Э

Эрик in Rust — русскоговорящее сообществo
Михаил Лёсин
Нубский вопрос, почему так и что я делаю не так:
У меня проект который делает бинарник, в нём я хочу организовать либу, которую потом хочу в нем же тестить.
Если я делаю так что у меня в src лежат рядом main.rs и lib.rs, то всё работает, я могу сослаться из test/test.rs на мой крейт, который называется, допустим, qqq.
Но если я lib.rs переделываю в lib/mod.rs, всё к чертям ломается, и в test/test.rs команда external crate qqq говорит нет такого крейта.
lib.rs вроде нельзя в папку. Можно другие модули:

lib.rs
pub mod foo;


foo/mod.rs
fn whatever() {}
источник

МЛ

Михаил Лёсин in Rust — русскоговорящее сообществo
Эрик
lib.rs вроде нельзя в папку. Можно другие модули:

lib.rs
pub mod foo;


foo/mod.rs
fn whatever() {}
а про это где-то же написано? я что-то не могу найти :(
источник

Э

Эрик in Rust — русскоговорящее сообществo
Это как main функция. Мало где написано, но вроде как очевидно.
источник

T

Tema in Rust — русскоговорящее сообществo
можно из std::option::Option<std::string::String> создать новую строку?
источник

T

Tema in Rust — русскоговорящее сообществo
просто скопировав
источник

AV

A V in Rust — русскоговорящее сообществo
red75prime а как привязать срок жизни выдаваемого &mut к итератору?
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Tema
просто скопировав
Сделав clone()
источник

Э

Эрик in Rust — русскоговорящее сообществo
Tema
можно из std::option::Option<std::string::String> создать новую строку?
let a: &Option<String> = &your_option;
let cloned_string: String = match a {
 Some(s) => s.clone(),
 None => String::new(),
}
источник

T

Tema in Rust — русскоговорящее сообществo
Эрик
let a: &Option<String> = &your_option;
let cloned_string: String = match a {
 Some(s) => s.clone(),
 None => String::new(),
}
почему так сложно, а не clone().unwrap().to_string() ?
источник