Salut,
Je m’amuse un peu avec Rust et je recontre actuellement le problème suivant. J’utilise la crate polynomial
(https://docs.rs/polynomial), et j’essaie de soustraire deux variables dans une fonction.
A force de galères (je ne comprenais pas pourquoi je devais restreindre T), j’arrive à ce code
use std::ops::Sub;
use polynomial::Polynomial;
use num_traits::Zero;
fn create_zero<T>(a: &Polynomial<T>) -> Polynomial<T>
where T: Zero + Clone + Sub<Output = T> {
let b = a - a;
return b;
}
Le truc qui m’emmerde c’est que je suis obligé d’importer Sub
et surtout Zero
, notamment parce que ça m’oblige à déclarer num_traits
dans mon fichier cargo. Aussi ça me fait un peu chier de redéclarer les restrictions de T
qui sont déjà présentes dans la bibliothèque.
Je me demande donc si il y a plus simple de faire, ou si c’est une limitation de la bibliothèque (et si c’est une limitation de la bib, comment aurait-elle dû être implémentée ?).
Merci !