Я пишу библиотеку NGram в Rust. Я хочу создать "общую" ngram, где размер не нужно определять до момента компиляции (в отличие от того, когда я его кодирую). Небольшой код может помочь сделать это понятным.
Вот в основном то, что я хочу сделать:
pub type Ngram<N> = Vec<[String; N]>;
а затем, чтобы использовать его, вы просто делаете что-то вроде этого:
let vec = Ngram::<5>::new();
И вы бы создали пять грамм (или, точнее, a Vec<[String; 5]>
). Это возможно. Я действительно не хочу делать что-то вроде этого:
pub type Ngram<N> = Vec<N>;
...
let vec = Ngram::<[String; 5]>::new();
Это в основном победит цель создания типа.