Result builders: какие методы реально нужны 😎
🔥 SE-0289 (Swift 5.4, переименован из function builders) превращает последовательность выражений в одно значение. Это та самая механика, на которой стоит DSL SwiftUI. Обязателен ровно один метод — buildBlock. Всё остальное опционально, и каждый включает конкретную возможность: buildOptional — голый if, buildEither(first:) / (second:) — if/else, buildArray — циклы for, плюс buildExpression, buildLimitedAvailability и buildFinalResult.
⚠️ Пара, которую регулярно пишут неправильно: это buildPartialBlock(first:) плюс buildPartialBlock(accumulated:next:) (SE-0348, Swift 5.7), а не buildPartialBlock(first:accumulated:). Если объявить оба, они заменяют собой buildBlock. Ещё две детали. break и continue внутри тела, преобразованного билдером, некорректны — это не поддерживаемый control flow. И по стилю: RequestPart... лучше сразу писать как any RequestPart... — обязательным это станет только в Swift 7 под ExistentialAny, но так честнее.