elements/src/bench
MacroFake 006740b6f6
Merge bitcoin/bitcoin#25721: refactor: Replace BResult with util::Result
a23cca56c0 refactor: Replace BResult with util::Result (Ryan Ofsky)

Pull request description:

  Rename `BResult` class to `util::Result` and update the class interface to be more compatible with `std::optional` and with a full-featured result class implemented in https://github.com/bitcoin/bitcoin/pull/25665. Motivation for this change is to update existing `BResult` usages now so they don't have to change later when more features are added in https://github.com/bitcoin/bitcoin/pull/25665.

  This change makes the following improvements originally implemented in https://github.com/bitcoin/bitcoin/pull/25665:

  - More explicit API. Drops potentially misleading `BResult` constructor that treats any bilingual string argument as an error. Adds `util::Error` constructor so it is never ambiguous when a result is being assigned an error or non-error value.

  - Better type compatibility. Supports `util::Result<bilingual_str>` return values to hold translated messages which are not errors.

  - More standard and consistent API. `util::Result` supports most of the same operators and methods as `std::optional`. `BResult` had a less familiar interface with `HasRes`/`GetObj`/`ReleaseObj` methods. The Result/Res/Obj naming was also not internally consistent.

  - Better code organization. Puts `src/util/` code in the `util::` namespace so naming reflects code organization and it is obvious where the class is coming from. Drops "B" from name because it is undocumented what it stands for (bilingual?)

  - Has unit tests.

ACKs for top commit:
  MarcoFalke:
    ACK a23cca56c0 🏵
  jonatack:
    ACK a23cca56c0

Tree-SHA512: 2769791e08cd62f21d850aa13fa7afce4fb6875a9cedc39ad5025150dbc611c2ecfd7b3aba8b980a79fde7fbda13babdfa37340633c69b501b6e89727bad5b31
2022-08-05 15:33:45 +02:00
..
data Add deserialize + CheckBlock benchmarks, and a full block hex 2016-11-09 11:27:59 -08:00
.gitignore Ignore bench_bitcoin binary. 2015-10-06 17:46:12 +02:00
addrman.cpp addrman: Use system time instead of adjusted network time 2022-07-30 11:04:09 +02:00
base58.cpp scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
bech32.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
bench.cpp Fixup option name in bench message 2022-05-25 00:26:38 -05:00
bench.h bench: Add --sanity-check flag, use it in make check 2022-05-17 11:32:25 +02:00
bench_bitcoin.cpp bench: Make all arguments -kebab-case 2022-05-17 11:32:25 +02:00
block_assemble.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
ccoins_caching.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
chacha20.cpp scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
chacha_poly_aead.cpp Do not run functions with necessary side-effects in assert() 2020-12-06 00:48:09 +00:00
checkblock.cpp Add missing includes 2022-07-19 14:12:33 +02:00
checkqueue.cpp refactor: use C++11 default initializers 2022-05-17 17:18:58 +01:00
coin_selection.cpp wallet: run coin selection by OutputType 2022-07-19 18:42:15 +02:00
crypto_hash.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
data.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
data.h bench: Move generated data to a dedicated translation unit 2019-07-02 18:11:15 +01:00
duplicate_inputs.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
examples.cpp bench: Avoid deprecated use of volatile += 2022-02-17 17:25:57 +01:00
gcs_filter.cpp Update GCSFilter benchmarks 2022-05-22 14:17:15 +09:00
hashpadding.cpp scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
lockedpool.cpp scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
logging.cpp bench: Add logging benchmark 2021-12-15 14:33:59 +01:00
mempool_eviction.cpp bench: Use existing CTxMemPool in TestingSetup 2022-06-15 17:28:55 -04:00
mempool_stress.cpp use testing setup mempool in ComplexMemPool bench 2022-05-30 16:00:41 -07:00
merkle_root.cpp Replace current benchmarking framework with nanobench 2020-06-13 12:24:18 +02:00
nanobench.cpp Replace current benchmarking framework with nanobench 2020-06-13 12:24:18 +02:00
nanobench.h bench: update nanobench from 4.3.4 to 4.3.6 2021-09-21 11:46:01 +02:00
peer_eviction.cpp scripted-diff: Rename touched member variables 2021-12-13 13:32:08 +01:00
poly1305.cpp scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
prevector.cpp refactor: use C++11 default initializers 2022-05-17 17:18:58 +01:00
rollingbloom.cpp refactor: Remove deduplication of data in rollingbloom bench 2022-04-06 13:57:31 +01:00
rpc_blockchain.cpp move-mostly: Make fHavePruned a BlockMan member 2022-04-19 14:34:56 -04:00
rpc_mempool.cpp bench/rpc_mempool: Create ChainTestingSetup, use its CTxMemPool 2022-06-15 17:28:55 -04:00
strencodings.cpp bench: Adds a benchmark for HexStr 2022-04-17 14:29:52 +02:00
util_time.cpp scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
verify_script.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
wallet_balance.cpp refactor: fix clang-tidy named args usage 2022-04-04 09:01:19 +01:00
wallet_loading.cpp refactor: Replace BResult with util::Result 2022-08-03 07:33:01 -04:00