что я делаю не так. Хочу написать темплейт для сохранения 8-ми и 16-битной картинки из крейта image чтобы не дублировать код, передаю в T соответственно u8 и u16:
fn save_image<T: image::Primitive>(image: ImageBuffer<Luma<T>, Vec<T>>, path: &str)
-> Result<(), Error>
{
match image.save(path) {
Ok(_) => {
info!("Image saved to {}", &path);
Ok(())
},
Err(e) => {
error!("Failed to save image: {}", e);
Err(Error::ImageSaveFailure)
}
}
}
Компилятор не дает мне этого сделать, ругается на вызов save:
match image.save(path) {
| ^^^^ method cannot be called on `ImageBuffer<Luma<T>, Vec<T>>` due to unsatisfied trait bounds
|
= note: the following trait bounds were not satisfied:
`[T]: EncodableLayout`
`[T]: image::traits::seals::EncodableLayout
Что я делаю не так?
Баунды эти повесь
Обсуждают сегодня