once function

void Function() once(
  1. void block()
)

Implementation

void Function() once(void Function() block) {
  bool isDone = false;
  return () {
    if (!isDone) {
      isDone = true;
      block();
    }
  };
}