1 /* 2 * Created by Phil on 4/4/2019. 3 * Copyright 2019 Two Blue Cubes Ltd. All rights reserved. 4 * 5 * Distributed under the Boost Software License, Version 1.0. (See accompanying 6 * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 */ 8 #ifndef TWOBLUECUBES_CATCH_ENUMVALUESREGISTRY_H_INCLUDED 9 #define TWOBLUECUBES_CATCH_ENUMVALUESREGISTRY_H_INCLUDED 10 11 #include "catch_interfaces_enum_values_registry.h" 12 13 #include <vector> 14 #include <memory> 15 16 namespace Catch { 17 18 namespace Detail { 19 20 std::unique_ptr<EnumInfo> makeEnumInfo( StringRef enumName, StringRef allValueNames, std::vector<int> const& values ); 21 22 class EnumValuesRegistry : public IMutableEnumValuesRegistry { 23 24 std::vector<std::unique_ptr<EnumInfo>> m_enumInfos; 25 26 EnumInfo const& registerEnum( StringRef enumName, StringRef allEnums, std::vector<int> const& values) override; 27 }; 28 29 std::vector<StringRef> parseEnums( StringRef enums ); 30 31 } // Detail 32 33 } // Catch 34 35 #endif //TWOBLUECUBES_CATCH_ENUMVALUESREGISTRY_H_INCLUDED