Marat
Marat
И полить сообщения
Маjко
А, круто
Маjко
Короче можно стату собирать)
Marat
Ну я планирую из телебота взять все типы
Nikita
У телебота возьму
Это не питоновская либа? Как ты собираешься оттуда типы брать?
Marat
и запилить свой дерайв
Nikita
Я просто не в курсах как это происходит
Marat
Marat
https://github.com/bytesnake/telebot
Marat
вот этот то есть
Nikita
Они их генерят как-то из tl-схемы?
Nikita
Почему надо брать только типы?
Marat
Так у ботов не tl схема
Marat
А там просто на страничке
Nikita
А, тьфу
Tuntz
Коллеги, как в номе жонглировать парсерами для &[u8] и CompleteByteSlice в рамках одного do_parse!?
Tuntz
ping @tapok_satan
Tuntz
и вообще непонятно как его дебажить
Tuntz
thread 'tests::parse' panicked at 'called `Result::unwrap()` on an `Err` value: Error(Code(CompleteByteSlice([103, 101, 116, 115, 101, 114, 118, 101, 114, 115, 82, 101, 115, 112, 111, 110, 115, 101, 92, 178, 62, 202, 219, 109, 56, 92, 188, 40, 71, 213, 109, 66, 92, 24, 166, 252, 209, 109, 62, 92, 69, 79, 84]), Tag))', libcore/result.rs:945:5
Vladimir
cargo expand
Vladimir
Для отладки
Tuntz
> Tag
Описание ошибки на 5
Anton
блин кода нет ниче не понятно чо те надо
Anton
ошибки там конченые да
Anton
он дает тебе слайс байтов на которых у тебя произошла ошибка, в качестве тест кейса если обрабатываешь текст можешь замутить str::from_bytes чтобы получить блок строки на котором возникла проблема
Anton
относительно жонгирования do_parse расчитывает на то что у тебя будет небольшое число входных блоков со ссылками на named сабпарсеры, в которых собственно и производишь обработку ошибок и тд (кстати определить какой блок именно ебнулся из do_parse можно по тому что ожидаешь - сопоставляешь выхлоп с тем на каком именно named он должен был сработать)
Anton
если же у тебя использовались кастомные парсеры Result то тут даже еще проще - просто трассируй внутри функции говно по брейкпоинтам
Anton
Anton
@vorot93
Tuntz
Tuntz
кастомные парсеры не юзаю принципиально
Anton
на крайний случай есть лайфхак - если сложная комбинация нужна, а ты не ебешь как существующими замутить макросами - там есть фича компилятора юзать регэкпы
Anton
(P.S - правда я ее не использовал)
Anton
(и она замедляет довольно сильно если выражение чуть сложнее какого то простого говна)
Tuntz
хм, интересно
Tuntz
на скорость посрать на самом деле
Tuntz
лишь бы работало
Tuntz
вроде как пофиксил баг у себя если чо
VCL
Привет всем, есть в std такой map, который преобразует Result<Option<T>, Error> в Result<Option<U>, Error> ?
Tuntz
my_res.map(|opt| opt.map(transformer))
Tuntz
ну это реально крайний случай имхо
Tuntz
такому не место в std
Tuntz
возможно
Anton
VCL
да, я так и делаю, но мои эстетические чувства оскорбляются из-за такого подхода
Сделал так, в std не нашёл и крейт не смог найти
use std::result::Result;
pub trait ResultExt<T, E> {
fn map_option<U, F: FnOnce(T) -> U>(self, op: F) -> Result<Option<U>, E>;
}
impl <T, E> ResultExt<T, E> for Result<Option<T>, E> {
fn map_option<U, F: FnOnce(T) -> U>(self, op: F) -> Result<Option<U>, E> {
self.map(|c| c.map(op))
}
}
Cat
ну если бы это было в std, то потом бы ещё неплохо было бы сделать реализации для Result<Option<Option<T>>, E>, Result<Option<Option<Option<T>>>, E>, ...
Tuntz
Tuntz
но кто знает
Денис
Nikita
Почему-то еще не упомянули HKT
Tuntz
после impl Trait в аргументах я никаким новациям не удивляюсь
Денис
и для итераторов!
Денис
на самом деле мб уже есть крейт, где это есть, но я не видел, и хз как это гуглить
123
Askama теперь поддерживает наследование более 1 блока? Насколько помню, еще недавно было в описании репа добавлено, что, мол, есть ограничение. Теперь, похоже, нет? Не могу найти коммитов. Кто-нибудь в курсе?
Alexey
А вот эта книжка годная? https://www.ozon.ru/context/detail/id/144056219/
Nikita
Alexey
кстати, тут писали, что растобук можно за два вечера прочитать.. я хз, но вроде как печатная версия книги больше 500 страниц.
кажется столько не прочитать за два вечара ну никак
Nikita
Alexey
да, но просмотреть то все придется. ибо за ширмой знакомого может прятаться что-то совсем другое. нужно хотя бы прочитать.
Alexey
а если узнаваемых элементов слишком много, то быстро становится скучно и клонит в сон 🙂
𝙽𝚒𝚌𝚔
Anton
Alexey
Anton
Nikita
Норм
А что в ней такого, чего нет в растбуке?
Roma
А что в ней такого, чего нет в растбуке?
"""Не просто скучное описание языка в стиле "The Book". Начинается с практического челенджа "давайте реализуем веб-сервер", "давайте сгенерим фрактал Мандельброта в png-файл многопоточным способом"."""!
Nikita
Sergey
А оригинал?
Оригинал хорошая. Мне кажется, неплохое дополнение к official rust book
Anonymous
Доброго времени суток
Установил rust 1.28, после пытаюсь выполнить cargo, в ответ получаю команда не найдена.
Что я забыл сделать ?
Anton
Anonymous
Anonymous
Команда ?