Size: a a a

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

2021 June 29

goldstein опять in Rust — русскоговорящее сообщество
Yup, sounds about right. Сейчас биндинги — твой лучший вариант.
источник

АП

Артем Пятницкий... in Rust — русскоговорящее сообщество
Нужно ли защищать fut мьютексом в следующем коде, если я хочу его менять внутри этого селекта?

tokio::select! {
   _ = fut { … }
}

Если нужно, то как правильно записать чтение этой футуры с мьютексом? Футура это JoinHandle<(). А то я уже второй день пытаюсь понять почему код время от времени странно работает и есть подозрение на гонку данных, хотя я и не понимаю из-за чего
источник

ΑZ

Αλεχ Zhukovsky in Rust — русскоговорящее сообщество
имхо если компилится без мьютекса то все работает. Без ансейфа отстрелить себе многопоток по-моему трудно
источник

D

Denis in Rust — русскоговорящее сообщество
не нужно
источник

LR

LeNya Robot in Rust — русскоговорящее сообщество
Можно ли взять последнюю подстроку длиной N  в Rust в виде синтаксиса slice'ов?
Как, например, на Python: string[:-3]
источник

АП

Артем Пятницкий... in Rust — русскоговорящее сообщество
Тогда почему при изменении футуры в другой ветке селекта она сразу консьюмится в первой где ее ждут?  Я просто думал селект аля гошный - пока одна ветка до конца не доработает, в другую не войдет
источник

ΑZ

Αλεχ Zhukovsky in Rust — русскоговорящее сообщество
в байтах - можно. В символах - нельзя, потому что непонтяно где начинается 3 символ с конца. У нас ютф8
источник

LR

LeNya Robot in Rust — русскоговорящее сообщество
У меня ascii, так что можно и в байтах.
Имеется в виду, все символы ascii..
источник

D

Denis in Rust — русскоговорящее сообщество
да и в байтах как в питоне не получится
источник

LR

LeNya Robot in Rust — русскоговорящее сообщество
То есть можно только так: string[string.len()-3..]?
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообщество
Если у тебя ascii, то работай с &[u8] а не со &str
источник

УМ

Убийца Мамонтов... in Rust — русскоговорящее сообщество
преобразование к usize ещё
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообщество
Если string это &[u8] то так можно, да.
источник

ΑZ

Αλεχ Zhukovsky in Rust — русскоговорящее сообщество
let s = "hello";
let s2 = std::str::from_utf8(&s.as_bytes()[s.len()-3..]).unwrap();
println!("{:?}", s2);
источник

ΑZ

Αλεχ Zhukovsky in Rust — русскоговорящее сообщество
анврап проверяет что у тебя и правда ascii (точнее что ты не разрезал строку посреди символа)
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообщество
Можно ведь сразу

let s = b"hello";
let s2 = s[s.len()-3..];
println!("{:?}", s2);
источник

D

Denis in Rust — русскоговорящее сообщество
да, слайсинг строки тоже проверяет валидность, и если что — паникует
источник

ΑZ

Αλεχ Zhukovsky in Rust — русскоговорящее сообщество
а, да? не знал
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообщество
Ну это я чтоб проиллюстрировать что с байтовыми слайсами работать удобнее, когда у тебя гарантировано аски
источник

B

Bulba in Rust — русскоговорящее сообщество
тада можно s.get(s.len()-3..);
источник