//===- RemarkUtilRegistry.h: Implement a command registry. ----------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
// Implement a simple subcommand registry.
//
//===----------------------------------------------------------------------===//
#ifndef TOOLS_LLVM_REMARKUTIL_REGISTRY_H
#define TOOLS_LLVM_REMARKUTIL_REGISTRY_H

#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Error.h"

namespace llvm {
namespace remarkutil {

// Use |CommandRegistration| as a global initialiser that registers a function
// and associates it with |SC|. This requires that a command has not been
// registered to a given |SC|.
//
// Usage:
//
//   // At namespace scope.
//   static CommandRegistration Unused(&MySubCommand, [] { ... });
//
struct CommandRegistration {
  CommandRegistration(cl::SubCommand *SC, std::function<Error()> Command);
};

// Requires that |SC| is not null and has an associated function to it.
std::function<Error()> dispatch(cl::SubCommand *SC);

} // namespace remarkutil
} // namespace llvm

#endif // TOOLS_LLVM_REMARKUTIL_REGISTRY_H
