tinyvec
گاهی اوقات شما چیزی را میخواهید که بتوان آن را مانند Vec تغییر اندازه داد، اما بدون heap allocation که [tinyvec
] (https://crates.io/crates/tinyvec) این را فراهم میکند: یک برداری که توسط یک آرایه یا برش پشتیبانی میشود که میتواند بهصورت ایستا allocate داده شود یا روی stack که تعداد عناصر استفاده شده را ردیابی میکند و اگر سعی کنید بیشتر از آنچه که اختصاصدادهشده را استفاده کنید panic میکند.
use tinyvec::{array_vec, ArrayVec}; fn main() { let mut numbers: ArrayVec<[u32; 5]> = array_vec!(42, 66); println!("{numbers:?}"); numbers.push(7); println!("{numbers:?}"); numbers.remove(1); println!("{numbers:?}"); }
-
tinyvec
نیاز دارد که تایپ عنصرDefault
را برای مقداردهی اولیه اجرا کند. - Rust Playground شامل
tinyvec
میشود، بنابراین این مثال بهخوبی به صورت داخلی اجرا میشود.