Spicy
engine.h
1 // Copyright (c) 2020-2021 by the Zeek Project. See LICENSE for details.
2 
3 #pragma once
4 
5 #include <hilti/base/util.h>
6 
7 namespace spicy {
8 
10 enum class Engine {
11  Parser,
12  Composer,
13  All
14 };
15 
16 namespace detail {
17 constexpr hilti::util::enum_::Value<Engine> engines[] = {
18  {Engine::Parser, "parser"},
19  {Engine::Composer, "composer"},
20  {Engine::All, "parser/composer"},
21 };
22 } // namespace detail
23 
24 constexpr auto to_string(Engine f) { return hilti::util::enum_::to_string(f, detail::engines); }
25 
26 namespace engine {
27 constexpr auto from_string(const std::string_view& s) {
28  return hilti::util::enum_::from_string<Engine>(s, detail::engines);
29 }
30 } // namespace engine
31 
32 } // namespace spicy
Definition: util.h:596