Начиная со Swift 5.9, появилась возможность помечать типы как некопируемые через аннотацию
~Copyable. При присваивании значения такого типа из одной переменной другой вместо копирования происходит перемещение значения. Классы при этом некопируемыми быть не могут.В статье разбирают все особенности поведения некопируемых типов.