Я столкнулся с проблемой с piston2d-graphics
ящиком.Когда я пытаюсь использовать метод expect()
для Result
, полученный из метода graphics::character::CharacterCache::character
, оказывается, что я не могу - потому что для реализации черты std::fmt::Debug
требуется тип ошибки Result:
error[E0599]: no method named `expect` found for type `std::result::Result<graphics::character::Character<'_, <G as graphics::Graphics>::Texture>, <C as graphics::character::CharacterCache>::Error>` in the current scope
--> src/some_file.rs:44:53
|
44 | let ch_glyph = glyphs.character(34, ch).expect("Couldn't load character");
| ^^^^^^
|
= note: the method `expect` exists but the following trait bounds were not satisfied:
`<C as graphics::character::CharacterCache>::Error : std::fmt::Debug`
Error
- это связанный (вложенный) тип в признаке CharacterCache
.Я могу легко представить PR, который добавляет требование, а затем добавить его реализацию с простым макросом производных для всех других ящиков.Это кажется разумным, потому что expect()
и другие связанные методы используются в Rust все время, но я не уверен.Это способ Rust, или есть причины не делать этого?
Я описываю вопрос на примере его возникновения, но он не имеет ничего общего с поршнем, мой вопрос касается общего характерав ржавчинеТак что тег rust-piston
не имеет отношения, пожалуйста, не добавляйте его к вопросу.