Перейти до вмісту
Помилки компілятора RustПомилка
E0277

E0277 — Тип не реалізує Sized

Динамічно розмірний тип (DST) використовується там, де вимагається тип Sized.

rustcargo

Що спричиняє цю помилку

Типи str, [T] та dyn Trait не мають відомого розміру під час компіляції. Більшість узагальнених параметрів вимагають Sized за замовчуванням. DST-типи не можна зберігати безпосередньо в стеку.

Як виправити

Використовуйте Box<dyn Trait>, &dyn Trait або &str замість голих DST. Додайте обмеження ?Sized до узагальнених параметрів, якщо хочете приймати DST: fn f<T: ?Sized>(x: &T). Використовуйте конкретний тип із відомим розміром.

Офіційна документація

Пов'язані коди помилок