Anton
Anton
придется удалять полностью IDE + остаточые файлы, либо же есть настройка все вернуть назад?
Anton
именно все
Anton
бага?
именно
Cat
придется удалять полностью IDE + остаточые файлы, либо же есть настройка все вернуть назад?
типичное снять галку — сохранить — перезайти — поставить галку — сохранить не помогает?
でゲソ
смахивает на неосиливание макросов
Anton
походу мне поможет только переустновка системы либо следующая версия IDE
Rostyslav
@mexus @lundibundi @notplhk Таки сделал удаление ноды, без Rc и т.п. Как я и думал, эту проблему нужно было решать архитектурно. Написал новый рекурсивный метод, который вызывается из дерева, а потом делегирует ноде этого дерева. Вот коммит: https://github.com/AtomicInteger/one_more_dstruct/commit/3ebf051f47f9132727197ba22b6dedb0c8cde561
Rostyslav
Остались правда ещё нерефакторенные углы, но это мелочи. За помощь спасибо.
Safort
@tapok_satan http://www.opennet.ru/opennews/art.shtml?num=48437 Уже видел?
Anton
этот бесплатный
Anton
там как я знаю питухон байдинги кьютовые с двойной лицензией были
Anton
мол если платные проги пишешь - покупай лицензию
Anton
Кстати посоны
Anton
тут давно еще кидали гайдлайн
Anton
по использованию failure
Anton
я его сейчас как раз юзаю, хочу освежить мюсли по поводу того как же его блять использовать
Anton
ссылку в студию плез
Anton
ну или я туплю и это была его стандартная бук дока
Aleksey
У них на сайте вроде хорошо описано
Anton
Anton
окай
Kerrigan
трогал, никак
Kerrigan
документации нет, во всех разделах TODO
Anton
Переустановил систему - починил
Денис
ты ради этого бага идеи ось переустанавливал?)
Anton
MacOS переустановил с нуля
Anton
ага)
Денис
шта
Денис
как так-то
Anton
да, я такой
Anton
зато у меня все файлы от приложений почистились, всякие пайтоны, ноды и JS-ки
Anton
Посоны, как ассоциировать ошибку с использованием ? на енам Failure
Anton
я прост чот втупить не могу как это работает и тд
Денис
bail!(kind) :)
Anton
bail!(kind) :)
ничего не понял, поясни плез
Anton
ну тоесть у меня есть функция result и ошибка это фэйлур, есть определение енамовое
Денис
ну там макрос есть, если нужно срочно выйти с какой-то ошибкой — https://docs.rs/failure/0.1.1/failure/macro.bail.html
Anton
и как происходит ассоциация с ошибкой с использованием знака ?
Денис
а чё там не работает-то?
Anton
да работает все
Andrey
А чё тогда не понятно-то?
Anton
ну банально fn ers() -> Result<(), Error> { let data = get_data()?; Ok(()) }
Денис
так
Anton
Вот тут знак вопроса
Anton
это значит что он как то берет ошибку
Anton
но у меня есть моя faiulure описание
Anton
и как мне в него скастовать эту ошибку?
Anton
или не нужно?
Денис
ааааа
Денис
если Error — это failure::Error, то оно всё само заработает
Денис
если это твой собственный тип, то ты можешь там запилить штуку из примера — https://boats.gitlab.io/failure/derive-fail.html#overriding-cause
Денис
#[fail(display = "A different error occurred.")] Variant2(#[cause] io::Error),
Andrey
Если get_data возвращает Fail то ничего не нужно делать. Если же там что-то другое то map_err
Денис
да не, даже если она возвращает что-то, что имплементит std::error::Error, то тоже не нужно ничё делать
Anton
#[fail(display = "A different error occurred.")] Variant2(#[cause] io::Error),
ну вот как раз такую штуку я запилили
Anton
но как в нее скастовать чтото?
Anton
да даже банально как ее вернуть
Денис
не надо кастовать, оно само кастуется
Денис
мммм
Anton
ибо Err(CustomErr::Err)
Anton
не катит
Anton
Anton
как он выбирает какую именно ошибку ему выбрать
Andrey
.into()
Денис
короче щас я пример забабахаю
Anton
по какому правилу?
պլհկ
Буравчика
Денис
https://gist.github.com/mexus/304ee9a3354ddb67649d10de0dd0a951
Денис
а вот с конвертером — https://gist.github.com/mexus/c37243db0c9d3c8d5880b70c8be2151e
Andrey
https://gist.github.com/mexus/304ee9a3354ddb67649d10de0dd0a951
std::fs::File::open("/lolwut").map_err(MyEnumError::Variant2)?;
Денис
можно так, ога
Денис
но я лично обычно использую Result<(), failure::Error> и горя не знаю
Денис
там конечно бокс внутри, но я стараюсь не делать логику на ошибках ))
Andrey
ага. это прекрасно работает для программ. но если делать библиотеку, то всё же лучше Result<(), ::libraryname::Error>