Size: a a a

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

2020 March 25

В

Вафель in Rust — русскоговорящее сообществo
ага да |_|
источник

С

Сергей in Rust — русскоговорящее сообществo
Я бы сделал E:Into<Error> и юзал ? без map_err
источник

В

Вафель in Rust — русскоговорящее сообществo
Сергей
Я бы сделал E:Into<Error> и юзал ? без map_err
Я у parse не могу ошибку изменить
источник

AZ

Alex Zhukovsky in Rust — русскоговорящее сообществo
diabolo
хотел узнать что конкретно пишешь
для игрушки одной пишу бекап сохранений
источник

АВ

Андрей Власов in Rust — русскоговорящее сообществo
Ты ещё не проверяешь же что в строке нет других минусов?
источник

В

Вафель in Rust — русскоговорящее сообществo
Андрей Власов
Ты ещё не проверяешь же что в строке нет других минусов?
да, но можно воткнуть
if split.next().is_some() {
   return Err(error())
}
источник

АВ

Андрей Власов in Rust — русскоговорящее сообществo
Вафель
да, но можно воткнуть
if split.next().is_some() {
   return Err(error())
}
Ага
источник

С

Сергей in Rust — русскоговорящее сообществo
ещё ты можешь найти position черты, а потом распарсить слайсы до и после, имхо  чуть короче получится
источник

В

Вафель in Rust — русскоговорящее сообществo
Anton TrionProg
Привет. Кто-нибудь знает, как справиться с этой сердой(serde)? Мне нужно, что бы A и F требовали сериализацию/десериализацию, а R нет. Если убрать баунды, то он захочет, что бы R сериализовался, а если написать.. он их тупо игнорит.

Код тут:
https://pastebin.com/UfMGuRR8
источник

AT

Anton TrionProg in Rust — русскоговорящее сообществo
Спасибо. Ща попробую.
источник

AZ

Alex Zhukovsky in Rust — русскоговорящее сообществo
Вафель
А есть более адекватный способ спарсить в serde range вида n-m (1-10, 1-1, etc)? :)
let (start, end) = v.split("-").map(|x| x?.parse()).tuples().next()let result: Result<Vec<u64>, _> = "123-456".split("-").map(|x| x.parse()).collect();
let vec = result.map_err(|_| error())?;
match vec.as_slice() {
   [start, end] => Ok(SeriesRange(start..=end)),
   _ => error()
}


Так вроде симпатично, нет?
источник

С

Сергей in Rust — русскоговорящее сообществo
Alex Zhukovsky
let (start, end) = v.split("-").map(|x| x?.parse()).tuples().next()let result: Result<Vec<u64>, _> = "123-456".split("-").map(|x| x.parse()).collect();
let vec = result.map_err(|_| error())?;
match vec.as_slice() {
   [start, end] => Ok(SeriesRange(start..=end)),
   _ => error()
}


Так вроде симпатично, нет?
это же с аллокацией в collect
источник

AZ

Alex Zhukovsky in Rust — русскоговорящее сообществo
Сергей
это же с аллокацией в collect
ну и ладно. Зато оно не пропустит 12-34-56
источник

AZ

Alex Zhukovsky in Rust — русскоговорящее сообществo
ну и целом вроде получше читается
источник

AZ

Alex Zhukovsky in Rust — русскоговорящее сообществo
источник

AT

Anton TrionProg in Rust — русскоговорящее сообществo
Спасибо. Да.. надеюсь, заработает(сейчас трабла в другом месте).
источник

В

Вафель in Rust — русскоговорящее сообществo
Сергей
ещё ты можешь найти position черты, а потом распарсить слайсы до и после, имхо  чуть короче получится
Ну, в целом короче, да
источник

В

Вафель in Rust — русскоговорящее сообществo
Anton TrionProg
Спасибо. Да.. надеюсь, заработает(сейчас трабла в другом месте).
👍
источник

В

Вафель in Rust — русскоговорящее сообществo
Alex Zhukovsky
ну и ладно. Зато оно не пропустит 12-34-56
Любой вариант не пропустит
источник

С

Сергей in Rust — русскоговорящее сообществo
34-56 не распарсится как число
источник