У меня есть функция в эликсире, который может закончиться в одном из состояний с дополнительным флагом: ОК, заблокирован, ok_spawned, blocked_spawned. (В этом случае флаг «_spawned» является флагом.) В будущем количество состояний и флагов может увеличиться.Как эффективно представлять флаги в Elixir?
Мой вопрос - что это лучший способ осуществить это? Поэтому я могу легко проверить флаги/общее состояние?
Моих идей либо карта или какой-то кортеж, где первый элемент является основным состоянием и второго является представлением флагов, но я не уверен, что лучше.
Любые идеи, высоко ценятся.
Я не уверен, но тот факт, что ваши возвращаемые значения настолько гибки может указывать на недостаток дизайна. Может быть, ваш метод слишком много? Для пользователей публичного API обычно представляются только два результата: в случае успеха соглашение должно возвращать ': ok' или' {: ok, return_value} '. В случае отказа вы должны вернуть '{: error, reason}'. Что вы ожидаете от потребителя метода для всех возвращаемых флагов? Это кажется слишком сложным в использовании. –