Anton
Anton
придется удалять полностью IDE + остаточые файлы, либо же есть настройка все вернуть назад?
Anton
именно все
Anton
Cat
でゲソ
смахивает на неосиливание макросов
Anton
Anton
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
тут давно еще кидали гайдлайн
Anton
по использованию failure
Anton
я его сейчас как раз юзаю, хочу освежить мюсли по поводу того как же его блять использовать
Anton
ссылку в студию плез
Anton
ну или я туплю и это была его стандартная бук дока
Aleksey
У них на сайте вроде хорошо описано
Anton
Anton
окай
Kerrigan
трогал, никак
Kerrigan
документации нет, во всех разделах TODO
Anton
Переустановил систему - починил
Денис
Денис
ты ради этого бага идеи ось переустанавливал?)
Anton
MacOS переустановил с нуля
Anton
ага)
Денис
шта
Денис
как так-то
Anton
да, я такой
Anton
зато у меня все файлы от приложений почистились, всякие пайтоны, ноды и JS-ки
Anton
Посоны, как ассоциировать ошибку с использованием ? на енам Failure
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
Anton
но как в нее скастовать чтото?
Anton
да даже банально как ее вернуть
Денис
не надо кастовать, оно само кастуется
Денис
мммм
Anton
ибо Err(CustomErr::Err)
Anton
не катит
Anton
Anton
как он выбирает какую именно ошибку ему выбрать
Andrey
.into()
Денис
короче щас я пример забабахаю
Anton
по какому правилу?
պլհկ
Буравчика
Денис
https://gist.github.com/mexus/304ee9a3354ddb67649d10de0dd0a951
Денис
а вот с конвертером — https://gist.github.com/mexus/c37243db0c9d3c8d5880b70c8be2151e
Денис
можно так, ога
Денис
но я лично обычно использую Result<(), failure::Error> и горя не знаю
Денис
там конечно бокс внутри, но я стараюсь не делать логику на ошибках ))
Andrey
ага. это прекрасно работает для программ. но если делать библиотеку, то всё же лучше Result<(), ::libraryname::Error>