Коли краще використовувати структуру, а коли клас?

Структури завжди швидше за класи (якщо звичайно включити Whole module optimization або подібну оптимізацію). При передачі об'єкта в функцію і виклик його властивості, починаючи з третього, структури швидше класів. При передачі значення у функцію, написану для Generic та Protocol, Generic буде швидше.