tinyvec

ํž™์— ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹นํ•˜์ง€ ์•Š๊ณ  ํฌ๊ธฐ ์กฐ์ ˆ์ด ๊ฐ€๋Šฅํ•œ ์ปจํ…Œ์ด๋„ˆ(์˜ˆ: Vec ๊ฐ™์€)๊ฐ€ ํ•„์š”ํ•  ๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. tinyvec์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. tinyvec์—์„œ ๋ฒกํ„ฐ๋Š” ๋ฐฐ์—ด ๋˜๋Š” ์Šฌ๋ผ์ด์Šค๋กœ๋ถ€ํ„ฐ ์ƒ์„ฑ์ด ๋˜๋ฉฐ, ์ด๋“ค์€ ์ •์ ์œผ๋กœ ํ• ๋‹น๋˜์—ˆ๊ฑฐ๋‚˜ ์Šคํƒ์— ํ• ๋‹น๋˜์–ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.tinyvec์€ ํ˜„์žฌ ๋ฒกํ„ฐ ์•ˆ์— ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์—˜๋ฆฌ๋จผํŠธ๋“ค์ด ์กด์žฌํ•˜๋Š” ์ง€๋ฅผ ์ถ”์ ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ํ• ๋‹น๋œ ์–‘๋ณด๋‹ค ๋” ๋งŽ์ด ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•˜๋ฉด ํŒจ๋‹‰์„ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

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 ํ”Œ๋ ˆ์ด๊ทธ๋ผ์šด๋“œ์—๋Š” tinyvec๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์ด ์˜ˆ์‹œ๋Š” ์ธ๋ผ์ธ์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.