Size: a a a

2020 December 02

a

antuan in Rust Beginners
ну да, потому что код другой :)
короче, в рамках async move если что-то заборровить - сваливается, к примеру
источник

a

antuan in Rust Beginners
я б, конечно, запилил mwe, но для этого придется репу организовывать: diesel в play.rust-lang.org не затащишь
источник

a

antuan in Rust Beginners
или ещё непонятка. допустим, делаю так:
let mut records_by_key = objects
           .iter()
           .map(|f| ((&f.key_1, &f.key_2), f))
           .collect::<HashMap<(&String, &String), &Foo>>();
получаю ту же ошибку. с той только разницей, что objects дропается на выходе из функции, а is borrowed for 'static``из неё как раз там, где вызывается этот collect
в том же примере кода, ага
=\
источник

a

antuan in Rust Beginners
в общем сделал mwe, всё собралось (https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=82256f3aa5d0059dbca70412b60a0d0d).
пошел рыть дальше.
обнаружил, что static требует tokio-diesel
#[async_trait]
impl<T, Conn> AsyncRunQueryDsl<Conn, Pool<ConnectionManager<Conn>>> for T
where
   T: 'static + Send + RunQueryDsl<Conn>,
   Conn: 'static + Connection,
{
источник
2020 December 03

SS

Slava Sokolovsky in Rust Beginners
Игорь Полосков
Хочу использовать генератор случайных чисел из rand. Прописал в Cargo.toml [dependencies] rand = "0.7"
При сборке ругается:
error: failed to download from https://crates.io/api/v1/crates/rand/0.7.3/download
Caused by:
 [35] SSL connect error (gnutls_handshake() failed: Error in the pull function.)
Ну это не раста проблемы, у тебя https не коннектится. Не может какое-нибудь время сбиться или что-то в этом духе?
источник

Oℕ

Oleg ℕizhnik in Rust Beginners
Есть два вектора размера 2^n - 1 одного типа и значение x того же типа. Разметим содержимое векторов так
[a00, a11, a12, a21, a22, a23, a24, ...] и [b00, b11, b12, a21, a22, a23, a24, ...]
Необходимо собрать новый вектор размера 2^(n +1) -1 с такими значениями
[x, a00, b00, a11, a12, b11, b12, a21, a22, a23, a24,a21, a22, a23, a24,...]
Как
лучше всего сделать без клонирования? Вручную итераторами?
источник

Oℕ

Oleg ℕizhnik in Rust Beginners
Если делать drain префиксов из начала это достаточно эффективно будет?
источник

r

red75prime in Rust Beginners
Oleg ℕizhnik
Есть два вектора размера 2^n - 1 одного типа и значение x того же типа. Разметим содержимое векторов так
[a00, a11, a12, a21, a22, a23, a24, ...] и [b00, b11, b12, a21, a22, a23, a24, ...]
Необходимо собрать новый вектор размера 2^(n +1) -1 с такими значениями
[x, a00, b00, a11, a12, b11, b12, a21, a22, a23, a24,a21, a22, a23, a24,...]
Как
лучше всего сделать без клонирования? Вручную итераторами?
Что значит "без клонирования"? Ну и порядок непонятен. 1 из первого, 1 из второго, 2, 2, 4, 4?
источник

Oℕ

Oleg ℕizhnik in Rust Beginners
red75prime
Что значит "без клонирования"? Ну и порядок непонятен. 1 из первого, 1 из второго, 2, 2, 4, 4?
Да
источник

Oℕ

Oleg ℕizhnik in Rust Beginners
red75prime
Что значит "без клонирования"? Ну и порядок непонятен. 1 из первого, 1 из второго, 2, 2, 4, 4?
Ну значит, что не хочется делать result.extend(&left[0..pack_size].into_iter().cloned())
источник

Oℕ

Oleg ℕizhnik in Rust Beginners
Т.е. сделать в случае, когда нет Clone для типа элемента
источник

r

red75prime in Rust Beginners
Цикл с take из drain'ов наверно будет норм. Но если нужна производительность нужно будет смотреть что там компилятор сгенерил
источник

K

Kitsu in Rust Beginners
Можно кастануть в MaybeUninit и далее циклом пройтись с mem::replace
источник

K

Kitsu in Rust Beginners
правда я не уверен, что &[T; N] -> &[MaybeUninit<T>; N] внезапно не окажется уб
источник

A

Aragaer in Rust Beginners
ну то есть это можно представить себе, что исходные два вектора это такая форма записи деревьев и мы хотим два дерева объединить под одним корнем
источник

AZ

Andrey Z in Rust Beginners
Как правильно распарсить String (несколько строк) в двумерный вектор символов? Я сделал так: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=eaf43798b607b4733248b3fb359b9733 но думаю, должно быть решение красивее.
источник

r

red75prime in Rust Beginners
Andrey Z
Как правильно распарсить String (несколько строк) в двумерный вектор символов? Я сделал так: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=eaf43798b607b4733248b3fb359b9733 но думаю, должно быть решение красивее.
let res: Vec<Vec<char>> = data.lines().map(|l| l.chars().collect()).collect();
источник

AZ

Andrey Z in Rust Beginners
red75prime
let res: Vec<Vec<char>> = data.lines().map(|l| l.chars().collect()).collect();
Спасибо! Не додумался, что нужно второй раз collect применить.
источник

G

GWM in Rust Beginners
Как можно какой-нибуть системный фонт получить как &'static [u8]?
Надо для iced
источник

Oℕ

Oleg ℕizhnik in Rust Beginners
red75prime
Цикл с take из drain'ов наверно будет норм. Но если нужна производительность нужно будет смотреть что там компилятор сгенерил
я просто посмотрел, в исходниках drain, если ренж не в самом конце будет копирование происходить
источник