[go: nahoru, domu]

Decouple Invoker from BindState

Move most of type-level logic out of BindState, and decouple Invoker
from BindState. So that we can use BindState with another Invoker impl.
- UnboundRunType calculation is moved to a separate helper template as
  MakeUnboundRuntype.
- Indices generation to extract tuple is moved from BindState to
  Invoker.
- WeakPtr handling is moved from BindState to Invoker.

This is a preparation CL as well to implement a OneShot variant of
Callback. That will share the same Callback and BindState impl with
different Invoker::Run impl and different Callback tag as Copyable
Callback and MoveOnly Callback have.

BUG=554299

Review-Url: https://codereview.chromium.org/2034633002
Cr-Commit-Position: refs/heads/master@{#402446}
5 files changed