В расте нет перегрузки методов. То есть хочешь сделать logger.info(args) шиш тебе. Вроде в ночных сборках компилера можно страшным бубном что то для перегрузки функций сделать, но бубном и я не смотрел еще. Хочу простого result.expect_with_msg(msgid, msg_arg1, msg_arg2...) так низя, только макрос пили и вызывай.
То есть сделать Deref, в котором компилер автоматом будет распаковывать все упаковки до момента пока не найдет первый же попавшийся подходящий по сигнатуре метод это ок, а против того же самого по сути среди методов трейта, это они против и только страшными костылями.
Но я еще разбираюсь.