Ответ 1
С полностью определенным синтаксисом Foo::bar
будет работать, приводя к fn(&Foo) ->()
(аналогично Python); если это то, что вы хотите (то есть называть это как callback(&foo)
):
let callback = Foo::bar;
Однако, если вы хотите, чтобы переменная self
уже была привязана (как, например, callback()
будет таким же, как вызов bar
для объекта foo
), вам нужно использовать явное закрытие
let callback = || foo.bar();