собственный публичный enum был "обычным", а для пользователей крейта он считался как non_exhaustive?
Когда enum является non_exhaustive в том числе и для самого крейта, то придётся добавлять во все match-и дефолтную ветку, засовывать в неё или панику или возврат ошибки "ЗначениеНеПоддерживается". И это будет довольно странная ошибка - зачем тогда я добавил в enum новое значение, если мой крейт его не поддерживает? И у клиентов есть не нулевая вероятность словить эту ошибку, просто потому, что компилятор мне не подскажет, что я где-то в коде крейта забыл в match-е обработать новое значение enum-а.
Емнип non_exhaustive работает именно так, как ты хочешь
Ха, и точно ведь. Спасибо.
Обсуждают сегодня