Size: a a a

2020 November 05

SH

Stas Hehera in Rust Beginners
кароч говоря нужно написать автоматическу имплементацию PartialEq для ошибок
источник

АГ

Алексей Герасимов... in Rust Beginners
Stas Hehera
кароч говоря нужно написать автоматическу имплементацию PartialEq для ошибок
PartialEq задерайвить можно, но он будет и данные сравнивать. а ты только тэги хочешь как я понял. Свой трейт придумай, чтобы только тэги сравнивать
источник

SH

Stas Hehera in Rust Beginners
так вот пытаюсь)
источник

АГ

Алексей Герасимов... in Rust Beginners
trait TagEq {
 fn cmp_tags(&self, other: &Self) -> bool;
}
источник

SH

Stas Hehera in Rust Beginners
вот пробую разное
источник

MB

Mikail Bagishov in Rust Beginners
Ну вообще std::mem::discriminant тут должен помочь
источник

АГ

Алексей Герасимов... in Rust Beginners
Stas Hehera
вот пробую разное
match err {
 error =>
}
в этом случае ты не сравниваешь err и error, ты просто новую переменную создаешь, надо через guard делать
источник

SH

Stas Hehera in Rust Beginners
Алексей Герасимов
match err {
 error =>
}
в этом случае ты не сравниваешь err и error, ты просто новую переменную создаешь, надо через guard делать
а это как?
источник

АГ

Алексей Герасимов... in Rust Beginners
match err {
 _ if err == error => true
 _ => false
}
но тогда это просто if же…
источник

АГ

Алексей Герасимов... in Rust Beginners
Mikail Bagishov
Ну вообще std::mem::discriminant тут должен помочь
а как он ограничит чтобы тип ошибки обязательно энумом был?
источник

MB

Mikail Bagishov in Rust Beginners
Алексей Герасимов
а как он ограничит чтобы тип ошибки обязательно энумом был?
Никак
источник

MB

Mikail Bagishov in Rust Beginners
Это и не требуется, эта функция работает для любого типа
источник

SH

Stas Hehera in Rust Beginners
Mikail Bagishov
Это и не требуется, эта функция работает для любого типа
хм.. щяс попробую)
источник

SH

Stas Hehera in Rust Beginners
это немного не то
источник

АГ

Алексей Герасимов... in Rust Beginners
тогда тебе еще неплохо было бы приделать методов чтобы создавать разные варианты по-умолчанию, чтобы юзер не думал что пихнуть в качестве данных, ибо они не нужны в итоге
источник

АГ

Алексей Герасимов... in Rust Beginners
Stas Hehera
это немного не то
почему?
discriminant(result_error) == discriminant(expected_error), вроде именно то, что ты хочешь
источник

SH

Stas Hehera in Rust Beginners
хм, щя ещё раз попроубю
источник

SH

Stas Hehera in Rust Beginners
Алексей Герасимов
почему?
discriminant(result_error) == discriminant(expected_error), вроде именно то, что ты хочешь
работает)
источник

SH

Stas Hehera in Rust Beginners
всее, теперь я могу передать конкретную ошибку и всё будет работать
источник

SH

Stas Hehera in Rust Beginners
Алексей Герасимов
почему?
discriminant(result_error) == discriminant(expected_error), вроде именно то, что ты хочешь
но это не жостко? я то конечно имею ограничение, что нерзя передать другую ошибку другого енума
источник