Skip to content

Commit

Permalink
Use 'magic_enum' library for static reflection for enums (#4065)
Browse files Browse the repository at this point in the history
This PR introduces magic_enum (https://github.com/Neargye/magic_enum) library as a submodule, which ergonomically handles enum to string conversions without requiring any adaptations to existing enum definitions.
  • Loading branch information
pwojcikdev authored Jan 26, 2023
1 parent d98f2bb commit 6281105
Show file tree
Hide file tree
Showing 44 changed files with 446 additions and 1,014 deletions.
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,6 @@
[submodule "boost"]
path = submodules/boost
url = https://github.com/boostorg/boost.git
[submodule "magic_enum"]
path = submodules/magic_enum
url = https://github.com/Neargye/magic_enum.git
4 changes: 4 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -496,6 +496,10 @@ set(FAIL_ON_WARNINGS
add_subdirectory(submodules/rocksdb EXCLUDE_FROM_ALL)

include_directories(cpptoml/include)

# magic_enum
include_directories(submodules/magic_enum/include)

add_subdirectory(crypto/ed25519-donna)

add_subdirectory(nano/ipc_flatbuffers_lib)
Expand Down
24 changes: 12 additions & 12 deletions nano/core_test/block_store.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -346,7 +346,7 @@ TEST (block_store, pending_iterator_comparison)
nano::logger_mt logger;
auto store = nano::make_store (logger, nano::unique_path (), nano::dev::constants);
ASSERT_TRUE (!store->init_error ());
nano::stat stats;
nano::stats stats;
auto transaction (store->tx_begin_write ());
// Populate pending
store->pending.put (transaction, nano::pending_key (nano::account (3), nano::block_hash (1)), nano::pending_info (nano::account (10), nano::amount (1), nano::epoch::epoch_0));
Expand Down Expand Up @@ -853,7 +853,7 @@ namespace lmdb
nano::logger_mt logger;
{
nano::lmdb::store store (logger, path, nano::dev::constants);
nano::stat stats;
nano::stats stats;
nano::ledger ledger (store, stats, nano::dev::constants);
auto transaction (store.tx_begin_write ());
store.initialize (transaction, ledger.cache, nano::dev::constants);
Expand All @@ -871,7 +871,7 @@ namespace lmdb
// Now try with the minimum version
{
nano::lmdb::store store (logger, path1, nano::dev::constants);
nano::stat stats;
nano::stats stats;
nano::ledger ledger (store, stats, nano::dev::constants);
auto transaction (store.tx_begin_write ());
store.initialize (transaction, ledger.cache, nano::dev::constants);
Expand Down Expand Up @@ -1271,8 +1271,8 @@ TEST (mdb_block_store, sideband_height)
nano::keypair key3;
nano::lmdb::store store (logger, nano::unique_path (), nano::dev::constants);
ASSERT_FALSE (store.init_error ());
nano::stat stat;
nano::ledger ledger (store, stat, nano::dev::constants);
nano::stats stats;
nano::ledger ledger (store, stats, nano::dev::constants);
nano::block_builder builder;
auto transaction (store.tx_begin_write ());
store.initialize (transaction, ledger.cache, nano::dev::constants);
Expand Down Expand Up @@ -1673,7 +1673,7 @@ namespace lmdb
{
nano::logger_mt logger;
nano::lmdb::store store (logger, path, nano::dev::constants);
nano::stat stats;
nano::stats stats;
nano::ledger ledger (store, stats, nano::dev::constants);
auto transaction (store.tx_begin_write ());
store.initialize (transaction, ledger.cache, nano::dev::constants);
Expand Down Expand Up @@ -1806,7 +1806,7 @@ namespace lmdb
{
nano::logger_mt logger;
nano::lmdb::store store (logger, path, nano::dev::constants);
nano::stat stats;
nano::stats stats;
nano::ledger ledger (store, stats, nano::dev::constants);
auto transaction (store.tx_begin_write ());
store.initialize (transaction, ledger.cache, nano::dev::constants);
Expand Down Expand Up @@ -1887,7 +1887,7 @@ namespace lmdb
{
nano::logger_mt logger;
nano::lmdb::store store (logger, path, nano::dev::constants);
nano::stat stats;
nano::stats stats;
nano::ledger ledger (store, stats, nano::dev::constants);
auto transaction (store.tx_begin_write ());
store.initialize (transaction, ledger.cache, nano::dev::constants);
Expand Down Expand Up @@ -2066,7 +2066,7 @@ namespace lmdb
nano::logger_mt logger;
nano::lmdb::store store (logger, path, nano::dev::constants);
auto transaction (store.tx_begin_write ());
nano::stat stats;
nano::stats stats;
nano::ledger ledger (store, stats, nano::dev::constants);
store.initialize (transaction, ledger.cache, nano::dev::constants);
ASSERT_EQ (nano::process_result::progress, ledger.process (transaction, *send_zero).code);
Expand Down Expand Up @@ -2306,7 +2306,7 @@ namespace lmdb
{
nano::logger_mt logger;
nano::lmdb::store store (logger, path, nano::dev::constants);
nano::stat stats;
nano::stats stats;
nano::ledger ledger (store, stats, nano::dev::constants);
auto transaction (store.tx_begin_write ());
store.initialize (transaction, ledger.cache, nano::dev::constants);
Expand Down Expand Up @@ -2386,7 +2386,7 @@ namespace lmdb
}
auto path (nano::unique_path ());
nano::logger_mt logger;
nano::stat stats;
nano::stats stats;
{
nano::lmdb::store store (logger, path, nano::dev::constants);
nano::ledger ledger (store, stats, nano::dev::constants);
Expand Down Expand Up @@ -2415,7 +2415,7 @@ namespace lmdb
}
auto path (nano::unique_path ());
nano::logger_mt logger;
nano::stat stats;
nano::stats stats;
{
nano::lmdb::store store (logger, path, nano::dev::constants);
nano::ledger ledger (store, stats, nano::dev::constants);
Expand Down
10 changes: 5 additions & 5 deletions nano/core_test/confirmation_height.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1208,7 +1208,7 @@ TEST (confirmation_heightDeathTest, rollback_added_block)
auto path (nano::unique_path ());
auto store = nano::make_store (logger, path, nano::dev::constants);
ASSERT_TRUE (!store->init_error ());
nano::stat stats;
nano::stats stats;
nano::ledger ledger (*store, stats, nano::dev::constants);
nano::write_database_queue write_database_queue (false);
nano::work_pool pool{ nano::dev::network_params.network, std::numeric_limits<unsigned>::max () };
Expand Down Expand Up @@ -1300,7 +1300,7 @@ TEST (confirmation_heightDeathTest, modified_chain)
auto path (nano::unique_path ());
auto store = nano::make_store (logger, path, nano::dev::constants);
ASSERT_TRUE (!store->init_error ());
nano::stat stats;
nano::stats stats;
nano::ledger ledger (*store, stats, nano::dev::constants);
nano::write_database_queue write_database_queue (false);
nano::work_pool pool{ nano::dev::network_params.network, std::numeric_limits<unsigned>::max () };
Expand Down Expand Up @@ -1378,7 +1378,7 @@ TEST (confirmation_heightDeathTest, modified_chain_account_removed)
auto path (nano::unique_path ());
auto store = nano::make_store (logger, path, nano::dev::constants);
ASSERT_TRUE (!store->init_error ());
nano::stat stats;
nano::stats stats;
nano::ledger ledger (*store, stats, nano::dev::constants);
nano::write_database_queue write_database_queue (false);
nano::work_pool pool{ nano::dev::network_params.network, std::numeric_limits<unsigned>::max () };
Expand Down Expand Up @@ -2093,7 +2093,7 @@ TEST (confirmation_height, unbounded_block_cache_iteration)
auto path (nano::unique_path ());
auto store = nano::make_store (logger, path, nano::dev::constants);
ASSERT_TRUE (!store->init_error ());
nano::stat stats;
nano::stats stats;
nano::ledger ledger (*store, stats, nano::dev::constants);
nano::write_database_queue write_database_queue (false);
boost::latch initialized_latch{ 0 };
Expand Down Expand Up @@ -2158,7 +2158,7 @@ TEST (confirmation_height, pruned_source)
auto path (nano::unique_path ());
auto store = nano::make_store (logger, path, nano::dev::constants);
ASSERT_TRUE (!store->init_error ());
nano::stat stats;
nano::stats stats;
nano::ledger ledger (*store, stats, nano::dev::constants);
ledger.pruning = true;
nano::write_database_queue write_database_queue (false);
Expand Down
24 changes: 12 additions & 12 deletions nano/core_test/ledger.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -820,7 +820,7 @@ TEST (ledger, double_open)
nano::logger_mt logger;
auto store = nano::make_store (logger, nano::unique_path (), nano::dev::constants);
ASSERT_TRUE (!store->init_error ());
nano::stat stats;
nano::stats stats;
nano::ledger ledger (*store, stats, nano::dev::constants);
auto transaction (store->tx_begin_write ());
store->initialize (transaction, ledger.cache, ledger.constants);
Expand Down Expand Up @@ -4108,7 +4108,7 @@ TEST (ledger, could_fit)
nano::logger_mt logger;
auto store = nano::make_store (logger, nano::unique_path (), nano::dev::constants);
ASSERT_TRUE (!store->init_error ());
nano::stat stats;
nano::stats stats;
nano::ledger ledger (*store, stats, nano::dev::constants);
auto transaction (store->tx_begin_write ());
store->initialize (transaction, ledger.cache, ledger.constants);
Expand Down Expand Up @@ -4745,7 +4745,7 @@ TEST (ledger, dependents_confirmed_pruning)
nano::logger_mt logger;
auto store = nano::make_store (logger, nano::unique_path (), nano::dev::constants);
ASSERT_FALSE (store->init_error ());
nano::stat stats;
nano::stats stats;
nano::ledger ledger (*store, stats, nano::dev::constants);
ledger.pruning = true;
auto transaction (store->tx_begin_write ());
Expand Down Expand Up @@ -4935,7 +4935,7 @@ TEST (ledger, pruning_action)
nano::logger_mt logger;
auto store = nano::make_store (logger, nano::unique_path (), nano::dev::constants);
ASSERT_TRUE (!store->init_error ());
nano::stat stats;
nano::stats stats;
nano::ledger ledger (*store, stats, nano::dev::constants);
ledger.pruning = true;
auto transaction (store->tx_begin_write ());
Expand Down Expand Up @@ -5019,7 +5019,7 @@ TEST (ledger, pruning_large_chain)
nano::logger_mt logger;
auto store = nano::make_store (logger, nano::unique_path (), nano::dev::constants);
ASSERT_TRUE (!store->init_error ());
nano::stat stats;
nano::stats stats;
nano::ledger ledger (*store, stats, nano::dev::constants);
ledger.pruning = true;
auto transaction (store->tx_begin_write ());
Expand Down Expand Up @@ -5074,7 +5074,7 @@ TEST (ledger, pruning_source_rollback)
nano::logger_mt logger;
auto store = nano::make_store (logger, nano::unique_path (), nano::dev::constants);
ASSERT_TRUE (!store->init_error ());
nano::stat stats;
nano::stats stats;
nano::ledger ledger (*store, stats, nano::dev::constants);
ledger.pruning = true;
auto transaction (store->tx_begin_write ());
Expand Down Expand Up @@ -5162,7 +5162,7 @@ TEST (ledger, pruning_source_rollback_legacy)
nano::logger_mt logger;
auto store = nano::make_store (logger, nano::unique_path (), nano::dev::constants);
ASSERT_TRUE (!store->init_error ());
nano::stat stats;
nano::stats stats;
nano::ledger ledger (*store, stats, nano::dev::constants);
ledger.pruning = true;
auto transaction (store->tx_begin_write ());
Expand Down Expand Up @@ -5275,7 +5275,7 @@ TEST (ledger, pruning_process_error)
nano::logger_mt logger;
auto store = nano::make_store (logger, nano::unique_path (), nano::dev::constants);
ASSERT_TRUE (!store->init_error ());
nano::stat stats;
nano::stats stats;
nano::ledger ledger (*store, stats, nano::dev::constants);
ledger.pruning = true;
auto transaction (store->tx_begin_write ());
Expand Down Expand Up @@ -5322,7 +5322,7 @@ TEST (ledger, pruning_legacy_blocks)
nano::logger_mt logger;
auto store = nano::make_store (logger, nano::unique_path (), nano::dev::constants);
ASSERT_TRUE (!store->init_error ());
nano::stat stats;
nano::stats stats;
nano::ledger ledger (*store, stats, nano::dev::constants);
ledger.pruning = true;
nano::keypair key1;
Expand Down Expand Up @@ -5408,7 +5408,7 @@ TEST (ledger, pruning_safe_functions)
nano::logger_mt logger;
auto store = nano::make_store (logger, nano::unique_path (), nano::dev::constants);
ASSERT_TRUE (!store->init_error ());
nano::stat stats;
nano::stats stats;
nano::ledger ledger (*store, stats, nano::dev::constants);
ledger.pruning = true;
auto transaction (store->tx_begin_write ());
Expand Down Expand Up @@ -5469,7 +5469,7 @@ TEST (ledger, hash_root_random)
nano::logger_mt logger;
auto store = nano::make_store (logger, nano::unique_path (), nano::dev::constants);
ASSERT_TRUE (!store->init_error ());
nano::stat stats;
nano::stats stats;
nano::ledger ledger (*store, stats, nano::dev::constants);
ledger.pruning = true;
auto transaction (store->tx_begin_write ());
Expand Down Expand Up @@ -5534,7 +5534,7 @@ TEST (ledger, migrate_lmdb_to_rocksdb)
uint16_t port = 100;
nano::lmdb::store store{ logger, path / "data.ldb", nano::dev::constants };
nano::unchecked_map unchecked{ store, false };
nano::stat stats{};
nano::stats stats{};
nano::ledger ledger{ store, stats, nano::dev::constants };
nano::work_pool pool{ nano::dev::network_params.network, std::numeric_limits<unsigned>::max () };

Expand Down
14 changes: 7 additions & 7 deletions nano/core_test/network.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -745,7 +745,7 @@ TEST (node, port_mapping)

TEST (message_buffer_manager, one_buffer)
{
nano::stat stats;
nano::stats stats;
nano::message_buffer_manager buffer (stats, 512, 1);
auto buffer1 (buffer.allocate ());
ASSERT_NE (nullptr, buffer1);
Expand All @@ -759,7 +759,7 @@ TEST (message_buffer_manager, one_buffer)

TEST (message_buffer_manager, two_buffers)
{
nano::stat stats;
nano::stats stats;
nano::message_buffer_manager buffer (stats, 512, 2);
auto buffer1 (buffer.allocate ());
ASSERT_NE (nullptr, buffer1);
Expand All @@ -782,7 +782,7 @@ TEST (message_buffer_manager, two_buffers)

TEST (message_buffer_manager, one_overflow)
{
nano::stat stats;
nano::stats stats;
nano::message_buffer_manager buffer (stats, 512, 1);
auto buffer1 (buffer.allocate ());
ASSERT_NE (nullptr, buffer1);
Expand All @@ -793,7 +793,7 @@ TEST (message_buffer_manager, one_overflow)

TEST (message_buffer_manager, two_overflow)
{
nano::stat stats;
nano::stats stats;
nano::message_buffer_manager buffer (stats, 512, 2);
auto buffer1 (buffer.allocate ());
ASSERT_NE (nullptr, buffer1);
Expand All @@ -810,7 +810,7 @@ TEST (message_buffer_manager, two_overflow)

TEST (message_buffer_manager, one_buffer_multithreaded)
{
nano::stat stats;
nano::stats stats;
nano::message_buffer_manager buffer (stats, 512, 1);
boost::thread thread ([&buffer] () {
auto done (false);
Expand All @@ -835,7 +835,7 @@ TEST (message_buffer_manager, one_buffer_multithreaded)

TEST (message_buffer_manager, many_buffers_multithreaded)
{
nano::stat stats;
nano::stats stats;
nano::message_buffer_manager buffer (stats, 512, 16);
std::vector<boost::thread> threads;
for (auto i (0); i < 4; ++i)
Expand Down Expand Up @@ -883,7 +883,7 @@ TEST (message_buffer_manager, many_buffers_multithreaded)

TEST (message_buffer_manager, stats)
{
nano::stat stats;
nano::stats stats;
nano::message_buffer_manager buffer (stats, 512, 1);
auto buffer1 (buffer.allocate ());
buffer.enqueue (buffer1);
Expand Down
4 changes: 2 additions & 2 deletions nano/core_test/processor_service.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ TEST (processor_service, bad_send_signature)
nano::logger_mt logger;
auto store = nano::make_store (logger, nano::unique_path (), nano::dev::constants);
ASSERT_FALSE (store->init_error ());
nano::stat stats;
nano::stats stats;
nano::ledger ledger (*store, stats, nano::dev::constants);
auto transaction (store->tx_begin_write ());
store->initialize (transaction, ledger.cache, ledger.constants);
Expand All @@ -38,7 +38,7 @@ TEST (processor_service, bad_receive_signature)
nano::logger_mt logger;
auto store = nano::make_store (logger, nano::unique_path (), nano::dev::constants);
ASSERT_FALSE (store->init_error ());
nano::stat stats;
nano::stats stats;
nano::ledger ledger (*store, stats, nano::dev::constants);
auto transaction (store->tx_begin_write ());
store->initialize (transaction, ledger.cache, ledger.constants);
Expand Down
Loading

0 comments on commit 6281105

Please sign in to comment.