### Инициализация контейнера диапазоном
let mut arr = [1, 2, 3, 4, 5];
let mut arr2 = [1..=5];
Базовый синтаксис:
let a : array(int) = [1, 2, 3];
Массив фиксированного размера vs динамический:
let a : array::fixed(int) = [1, 2, 3];
let b : array::vec(int) = [1, 2, 3];
То же самое но с заданием размера:
let a : array::fixed(int, 3) = [1, 2, 3];
let b : array::vec(int, 3) = [1, 2, 3];
Капасити описывается иначе:
let a : array::fixed(int, size = 3, capacity = 5) = [1, 2, 3];
let b : array::vec(int, size = 3, capacity = 5) = [1, 2, 3];
В массивы можно класть новые элементы.
В случае с fixed мы можем положить что-то только если capacity >= size
мы можем убрать это поведение, отказываясь от возможности
класть в fixed что-то если применим следующий тип:
let a : array::fixed::inline_size(int, size = 3) = [1, 2, 3];
Это встроит размер в тип, мы не сможем пользоваться встроенными функциями по добавлению элементов, но скорость работы и потребление памяти будет чуть меньше.
Квадратные скобки всегда необходимы для указания того, что мы создаём контейнер с элементами, а не n элементов с каким-то значением (в отличие от c++ где мы можем случайно это перепутать).