関数単位で切り出す場合はimpl TraitやBox<dyn Trait>使った方が良いと思う
実装の詳細が型として露出してしまうのはよろしくないし
何より長い型を書き下すのはめんどくさい