Suivre

Petit partage d'un récit autour de la lib SmallVec utilisé dans de .
troubles.md/improving-smallvec

Merci aureliaa pour le partage!

@darnuria `SmallVec<[T::Item; 100]>` c'est quoi cette notation ? 🤔

@AugierLe42e `SmallVec`: un type
parametré par le type
[T::Item; 100]
T::Item etant le type associé que tu va ranger dans ton SmallVec genre comme le T::Item de Iterator.

@AugierLe42e [T; 100] pour dire un tableau de taille 100 connu a la compilation de T.

@darnuria Donc c'est une syntaxe spéciale pour les vecteurs ? Ou c'est une syntaxe valide pour n'importe quel type générique ? 🤔

@AugierLe42e le truc entre <> c'est la syntaxe des types paramétriques tout ce qui est un type peut rentrer la dedans.

[T; 100] c'est propre aux tableaux a taille definie à la compilation.

@darnuria Ok. C'est un peu bizarre comme syntaxe, j'avoue. Et c'est l'implémentation du trait Array qui définit que c'est un tableau, alors ?

@AugierLe42e Faudrait que je check la crate SmallVec pour le dire mais le coup du Item::T c'est liée a un trait dans SmallVec oui.

C'est les côtés avancé de Rust que tu retrouve en OCaml avec les modules paramétriques et les Typeclass en Haskell quoi.

Tu paramétrise des Types par des types: ᕕ( ᐛ )ᕗ
C'est pas la syntaxe de Rust qui est la plus légère pour ça...

Inscrivez-vous pour prendre part à la conversation
Framapiaf

Le réseau social de l'avenir : Pas d'annonces, pas de surveillance institutionnelle, conception éthique et décentralisation ! Possédez vos données avec Mastodon !