Euphoria
console.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <functional>
4 #include <iostream>
5 
6 
7 #include <map>
8 
9 namespace eu::core
10 {
15  {
16  using Args = std::vector<std::string>;
17  using PrintFunction = std::function<void(const std::string&)>;
18  using ActionFunction = std::function<void(PrintFunction, const Args&)>;
19 
21 
22  void
23  register_command(const std::string& name, ActionFunction callback);
24 
25  void
26  run(PrintFunction print, const std::string& cmd);
27 
28  void
30 
31  private:
32  // private to make sure the case of the name is consistent
33  std::map<std::string, ActionFunction> callbacks;
34  };
35 
36  std::vector<std::string>
37  parse_commandline(const std::string& str);
38 }
std::vector< std::string > parse_commandline(const std::string &str)
Definition: console.cc:103
Provides a terminal like experience.
Definition: console.h:15
std::vector< std::string > Args
Definition: console.h:16
std::function< void(const std::string &)> PrintFunction
Definition: console.h:17
void run(PrintFunction print, const std::string &cmd)
Definition: console.cc:27
void register_command(const std::string &name, ActionFunction callback)
Definition: console.cc:20
void print_help(VirtualConsole::PrintFunction print, const Args &)
Definition: console.cc:54
std::function< void(PrintFunction, const Args &)> ActionFunction
Definition: console.h:18